Python/CoTe 70

[삼성기출] 테트리스 블럭 안의 합 최대화 하기 - 파이썬

직관적으로 풀면, 나올 수 있는 모든 블럭의 종류의 좌표값을 저장해서 해결한다. n,m = map(int,input().split()) arr = [list(map(int,input().split())) for _ in range(n)] blocks = [[(0,1),(0,2),(0,3)],[(1,0),(2,0),(3,0)],#연속 일자 모형 [(0,1),(1,0),(1,1)],#정사각형 [(1,0),(1,1),(2,0)],[(1,0),(2,0),(1,-1)],[(0,1),(0,2),(-1,1)],[(0,1),(0,2),(1,1)],#가운데 툭튀 형 [(1,0),(1,1),(2,1)],[(1,0),(0,1),(-1,1)],[(0,1),(-1,1),(-1,2)],[(0,1),(1,1),(1,2)],#계단형..

Python/CoTe 2024.04.13

[삼성기출] 나무 박멸 - 파이썬 (테스트 케이스7 의미)

어려운건 아닌데,,,, 정말 신경 쓸 조건이 너무 많고 문제의 사소한 의미 파악하는데 오래걸림... ※ 주의할 조건 1. 나무가 번식할 때, 해당칸에 나무를 번식할 수 있는 모든 값을 더해야한다. 예를 들어, 아래 그림의 (4,2)칸의 경우, 18개 나무가 번식했을 때 값(9)+13개 나무가 번식했을 때의 값(6)을 모두 더해준 15가 된다. 2. 벽, 나무가 없는 땅, 제초제가 뿌려진 땅(이 땅도 나무가 없음) 곳 이상 제초제를 뿌려나갈 수 없다. → 벽이라면 제초제를 뿌리지 않는다. → 제초제가 뿌려진 땅이라면, 새롭게 제초제를 뿌린고 그 이상은 뿌리지 않는다. (테케7) → 나무가 없는 땅이라면, 새롭게 제초제를 뿌리고 그 이상은 뿌리지 않는다. → 나무가 있는 땅에는 제초제를 뿌리고, 제거된 나무..

Python/CoTe 2024.04.13

[CodingTest]나무 타이쿤 - 삼성기출문제 (파이썬)

정말 어려운 것은 아니지만 하나하나 체크하고 신경 쓸게 많은 구현 문제... 정답률 70% 이상인 것으로 보아 어렵진 않다. 문제 예시대로, 1.영양제 이동 2. 이동된 영양제 위치 나무 길이 +1씩 3. 영양제가 있는 나무 기준 대각선을 순회하면서 길이가 1 이상인 개수 곳의 개수만큼 지금 나무 길이 + 4. 길이가 2 이상인 나무 자르고, 자른 나무의 위치가 새롭게 영양제를 주는 곳으로 표시 이 것을 반복하면 된다. n,m = map(int, input().split()) trees = [list(map(int, input().split())) for _ in range(n)] moves = [list(map(int, input().split())) for _ in range(m)] move_dir ..

Python/CoTe 2024.04.13

[프로그래머스] level3 등굣길 파이썬

풀이시간 : 30분 체감 난이도: level2 https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ※ 주의 - puddles 가 컴퓨터 index 접근인 [1,1]이 아니라 [2,2]로 되어있다. 시작 위치도 [1,1]이다. ※ 접근법 1. 동적 프로그래밍 -> 최단거리를 구하는 것도 아니고, 갈 수 있는 경로를 모두 구하는 것. 2. 동서남북을 확인하여 지금까지 왔던 값을 모두 더해주면 내가 현재 지점까지 올 수 있는 모든 경우의 수가 된다. 3..

Python/CoTe 2024.03.05

[프로그래머스] level3 - 야근지수 파이썬 풀이

풀이 시간 : 15분 level3 맞나,,,? https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 핵심 최대 일들 부터 처리해줘야 제곱의 합이 작아진다. 접근법 1. 정렬 (문제는 맞으나 매번 for 문마다 정렬하면 효율성이 떨어진다) 2. heap (자동으로 정렬되는 heap 이용) heap 이용한 풀이 import heapq def solution(n, works): heap = [] #최대 힙으로 만든다 for work in works: he..

Python/CoTe 2024.03.05

PCCP 모의고사 1회 - 외톨이 알파벳 (파이썬 풀이)

프로그래머스 PCCP 모의고사 1회 - 외톨이 알파벳 파이썬 풀이 https://school.programmers.co.kr/learn/courses/15008/lessons/121683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명은 복잡하게 되어있지만 (처음 설명대로 접근하면 오히려 코드가 복잡해지고 접근법이 오히려 이상) 결국 2회 이상 나온 알파벳 중에 붙어 있지 않으면 모두 외톨이 알파벳이다. ※ 핵심 총 2회 이상 등장한 알파벳은 등장횟수만큼 모두 붙어있어야만 한다. 접근법 1. 지금까지 나온 모든 알파벳의 최대 등장 횟수만 알면된다. →..

Python/CoTe 2024.02.14

[프로그래머스] [3차] 방금그곡 - 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/17683# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 생각보다 쉬웠던 문제. 풀이 : 30분 ※ 접근법 1. 우선 C#, D#, F#, G#, A# 을 하나의 문자로 보기 위해 사용하지 않는 문자열로 치환해준다, 예시) dict_ = {"C#": "H", "D#": "I", "F#":"J", "G#":"K", "A#":"L"} 2. 제한 사항에 있는 조건들 확인. - 1) 재생된 시간 계산 - 2) 재생된 시간이 제일 긴 조건 확인 - 3) 음악 ..

Python/CoTe 2024.02.06

[프로그래머스] level2 스킬트리 - 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/49993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 제한 사항에서 1이상 26이하이며, 중복된 스킬은 없다고 한다. 접근법 정렬 전 후 비교로 접근 1. 모든 skill_tree에 대해 skill들을 돌면서 만약 해당 skill 이 존재한다면 skill 순서 정보와 함께 따로 list 배열에 저장. 2. 순서 정보가 포함된 리스트이기 때문에 정렬 했을 때 스킬을 순서대로 사용했다면 정렬하기 전과 후가 같은 값이어야 함. 예를 들어서, "CBD" 순..

Python/CoTe 2024.01.30

[프로그래머스] level2 할인 행상 - 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아... 왤케 문제 글이 길면 읽기 싫지...괜히 이해 더 안 가는 것 같은 착각. 이 문제가 그랬다.. 막상 생각보다 쉬운 문제라 10분 컷 했나.. 접근법 0. number의 합은 항상 10이고 항상 연속 10일이다. 1. want 속 물품들과 number 들 간의 pair를 dictionary 로 만들어 준다. 2. for 문으로 discount 중 처음부터 10일씩 잘라가며 1에서 만든 ..

Python/CoTe 2024.01.30

[프로그래머스] level2 - 두 큐 합 같게 만들기

https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사실 문제 자체는 이해하기 쉽고, 직관적으로 생각한 풀이가 맞긴한데, 시간복잡도를 조심해야한다. 제한사항 ※ 접근법 1. 두 큐의 합을 비교하여 큰 큐에서 작은 큐로 원소를 하나씩 이동하며 작업 수행 수를 count한다. 2. 두 큐의 합이 같아지는 순간이 최소 3. 두 큐의 합이 같은 순간이 없다면 -1 을 return ※ 시간 복잡도 유의사항 1. 분명 while 문이나 for 문을 해야할 ..

Python/CoTe 2024.01.25
728x90