코딩테스트(89)
-
프로그래머스 땅따먹기 코드 및 해설 (파이썬)
programmers.co.kr/learn/courses/30/lessons/12913 코딩테스트 연습 - 땅따먹기 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟 programmers.co.kr 💡 Dynamic Programming으로 풀이했습니다. 먼저 주어진 land과 같은 shape의 dp라는 리스트를 생성합니다. 이때 모든 값은 0으로 초기화합니다. dp의 두 번째 줄부터, 각 위치에 도달할 때까지의 최댓값을 dp에 저장합니다. 이때 연속해서 같은 열은 방문할 수 없게 해줍니다. cf. dp의 첫 번째 줄에선 아직까지 더해온 값이 없어 그..
2021.04.13 -
프로그래머스 뉴스 클러스터링 코드 및 해설 (파이썬)
programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 💡 Counter를 이용해 중복을 고려한 교집합 및 합집합을 구했습니다 프로그래머스에서 라이브러리를 사용할 수 있는지 확인해보니, 파이썬의 표준 라이브러리는 사용할 수 있다고 한다. 이 코드에 사용된 collections과 math 모두 표준 라이브러리라 다행이었지만, 너무 라이브러리에 의존한 풀이였나, 싶기도 하다... 두 글자씩 끊어 바이그램을 만드는..
2021.04.13 -
프로그래머스 정수 삼각형 코드 및 해설 (파이썬)
programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 💡 Dynamic Programming으로 풀이했습니다. 먼저 주어진 triangle과 같은 shape의 dp라는 리스트를 생성합니다. 이때 모든 값은 0으로 초기화합니다. dp의 두 번째 줄부터, 각 위치에 도달할 때까지의 최댓값을 dp에 저장합니다. cf. dp의 첫 번째 줄에선 아직까지 더해온 값이 없어 그대로 0이므로 고려하지 않아도 됩니다. dp의 마지막 줄에 다다를 때까지 이를 반복하고, 마지막 줄에 도달하면 while문을 종료합니다. 여기..
2021.04.09 -
프로그래머스 다리를 지나는 트럭 코드 및 해설 (파이썬)
programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이 programmers.co.kr 💡 다리와 트럭을 큐로 사용하여 풀이했습니다. 먼저 다리는 bridge라는 큐로, bridge_length만큼의 0으로 초기화시켜주었고, 트럭은 trucks라는 큐로, 입력으로 주어진 truck_weights를 큐로 변환시켜준 것입니다. trucks에서 트럭 하나씩 꺼내면서 모든 트럭이 꺼내졌을 때까지 while문을 돌립니다. 현재 트럭이 다리 위에 올라갈 수..
2021.04.07 -
프로그래머스 스킬트리 코드 및 해설 (파이썬)
programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 💡 skill에서 순서가 정해진 스킬을 제외한 스킬들은 valid 여부에 영향을 주지 않습니다. 따라서 이러한 스킬들은 지운 상태에서 valid 여부를 확인하고자 합니다. 주어진 skill에서 가능한 순서를 모두 구해 valid에 저장합니다. ex) skill = "CBD"인 경우, valid = ['', 'C', 'CB', 'CBD'] 빈 스트링의 경우 skill에 주어진 스킬 중에선 아무것도 배우지 않는 경우를 의미함 각 skill_tree에 대해 skill에 포함되지 않은 스킬은 모두 지운 상태가 valid에 포함되는지 확인합니다. 포함되면 answer..
2021.04.07