본문 바로가기

코딩 테스트6

[코딩테스트] 프로그래머스 - 단어 변환 (Lv.3) in Python 두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 begin을 target으로 변환 가능한 지 알려주는 solution 함수 구현 programmers.co.kr/learn/courses/30/lessons/43163 풀이과정은 프로그래머스 수업 내용을 바탕으로 합니다. 풀이 - 너비 우선 탐색 (BFS)를 사용해서 풀면 효율적이다. - 너비 우선 탐색은 FIFO (선입선출) 로직을 사용하므로, 큐 자료구조가 적합하다. (참고 - 여행 경로 문제 (piaflu.tistory.com/62 ) # 비교할 두 단어가 변환 가능한 지 - 한 글자만 다름 - 확인 def possible(start, target): count = 0 for i i.. 2021. 3. 9.
[코딩테스트] 프로그래머스 - 땅따먹기 (Lv.2) in Python 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟으면서 내려와야 합니다. 단, 땅따먹기 게임에는 한 행씩 내려올 때, 같은 열을 연속해서 밟을 수 없는 특수 규칙이 있습니다. 마지막 행까지 모두 내려왔을 때, 얻을 수 있는 점수의 최대값을 return하세요. 예시: | 1 | 2 | 3 | 5 | | 5 | 6 | 7 | 8 | | 4 | 3 | 2 | 1 | => 5 -> 7 -> 4 => answer = 16 programmers.co.kr/learn/courses/30/lessons/12913 풀이 - 처음에는, 1행에서 가장 큰 숫자를 찾고, 다음 행에서 같은 열에 있는 숫자.. 2021. 2. 17.
[코딩테스트] 프로그래머스 - 구명 보트 (Lv.2) in 파이썬 Python 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 한다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있다. 사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit이 주어짐. 구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 할 때, 필요한 구명보트 갯수는? 예시: 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없다. 따라서 (1,3), (2), (4) 구성으로 보트를 타 총 세 개의 보트가 필요! programmers.co.kr/learn/c.. 2021. 2. 16.
[코딩테스트] 프로그래머스 - 튜플 (Lv.2) in Python 원소의 개수가 n개이고, 중복되는 원소가 없는 튜플 (a1, a2, a3, ..., an)이 주어질 때(단, a1, a2, ..., an은 자연수), 이는 다음과 같이 집합 기호 '{', '}'를 이용해 표현 가능. {{a1}, {a1, a2}, {a1, a2, a3}, {a1, a2, a3, a4}, ... {a1, a2, a3, a4, ..., an} 특정 튜플을 표현하는 집합이 담긴 문자열 s가 매개변수로 주어질 때, s가 표현하는 튜플을 배열에 담아 return. 예시: 입력 - "{{2},{2,1},{2,1,3},{2,1,3,4}}", 리턴 - [2,1,3,4] programmers.co.kr/learn/courses/30/lessons/64065 파이썬 코드 구현 def solution(s):.. 2021. 2. 6.