문제 https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 리뷰 그리디(탐욕법) 문제이다. 풀이 주어진 수의 일정 범위에서 가장 큰 수를 각 자리의 값으로 만들면 된다. 이때 그 범위를 지정하는 것이 관건이다. 현재 자리에 들어갈 수를 구하는 범위를 정하기 위해서는 다음과 같은 조건을 고려해야 한다. 범위의 시작 인덱스(start)는 이전 자리에 들어간 수의 바로 다음 자리이다. 범위의 마지막 인덱스(end)의 뒤에는 아직 값이 정해지지 않은 자리의..
Problem Solving
문제 https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 배열 book_time에 저장된 각 예약 건의 입실 시간과 퇴실 시간을 바탕으로 최소 몇 개의 객실이 필요한지 구하는 문제이다. 퇴실 시간 이후 청소 시간 10분 동안은 다른 예약자가 같은 방을 사용할 수 없다는 점을 고려해야 한다. 리뷰 풀이 먼저 편하게 시간을 계산하기 위해 입실 시간과 퇴실 시간을 필드로 갖는 클래스 BookTime을 만들었다. 그리고 book_time의 각 원소들을 ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/159993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 시작점에서 출발하여 출구로 탈출하는 데 걸리는 최단 시간을 구하는 문제이다. 한 칸을 이동하는 데는 1초가 걸린다. 미로를 탈출하기 위해서는 레버를 반드시 거쳐야 한다. 리뷰 풀이 BFS로 최단 거리를 구하면 된다. 단, 레버를 반드시 거쳐야 출구로 나갈 수 있으므로 출구까지의 최단 거리는 시작점(S)에서 레버(L)로의 최단 거리와 레버(L)에서 출구(E)로의 최단 거리를 더한 값이다. 이..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/181187# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 두 원의 반지름이 주어지고 두 원 사이에 있는 정수 좌표의 개수를 구하는 문제이다. 리뷰 풀이 처음에는 좌표에 대하여 원점으로부터의 거리를 구하고, 그 거리가 r1 이상, r2 이하이면 count하는 방식으로 구했다. 하지만 이 방식은 모든 좌표에 대하여 계산을 하기 위해 이중 for문을 사용하게 되어 시간 초과가 발생했다(케이스 7~10). 반복문을 줄이기 위해 각 x 좌표에 대한 두 ..