본문 바로가기

전체 글

(18)
길 찾기 게임 문제 링크 : programmers.co.kr/learn/courses/30/lessons/42892?language=python3 이진 트리를 구현하고 그 안에서 전위 순회와 후위 순회를 다시 구현하는 방식으로 문제를 해결했습니다. 전위 순회는 금방 떠올릴 수 있었는데 후위 순회를 고려하느라 많이 헤맸습니다. 입력으로 주어지는 node의 최대 깊이가 1000인 것을 고려할 때, 배열로 이진 트리를 구현하는 것은 메모리 낭비가 심할 것으로 생각하고 번호, x값, leftNode, rightNode를 property로 갖는 Node class를 생성했습니다. 완전 이진 트리가 아니므로 leaf node가 아닌 모든 node가 leftNode와 rightNode를 가질 필요는 없습니다. 문제의 조건 중 임의..
오픈채팅방 문제 링크 : programmers.co.kr/learn/courses/30/lessons/42888?language=python3 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 도중에 닉네임을 변경하는 경우가 생길 수 있기 때문에, 주어진 records의 순서대로 result를 바로 만들 수는 없습니다. 모든 유저를 [유저 아이디]로 구분한다는 점에 착안해서 [유저 아이디]를 key로 가지고 [닉네임]을 value로 갖는 Dictionary를 이용하여 문제를 해결할 수 있습니다. 먼저 records를 앞에..
외벽 점검 문제 링크 : programmers.co.kr/learn/courses/30/lessons/60062?language=python3 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하 programmers.co.kr 외벽의 길이가 n, 취약 지점의 위치가 weak, 각 친구가 이동할 수 있는 거리가 dist로 각각 주어집니다. 외벽이 원형으로 이루어졌기 때문에 길이가 100인 벽에서 지점 0과 지점 90까지의 최단 거리는 10입니다. p1 >= p2일 때, dis = min(p1 - p2, p2 - p1 + n)이 성립합니다. 친구가 투입되는 ..