Coding Test/Programmers(62)
-
[Programmers] Lv2. 마법의 엘리베이터 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 내려가는 게 유리한 숫자 : 0, 1, 2, 3, 4 올라가는 게 유리한 숫자 : 6, 7, 8, 9 애매한 숫자 : 5 숫자 5가 나왔을 때에는 바로 앞 숫자를 살펴보는 게 필요합니다. 바로 앞 숫자가 5 이상이라면 올라가는 게 유리하고, 5 미만이라면 내려가는 게 유리합니다. # [예시1] 35 - 올라갈 경우 : 35 + 5 -> 40 - 40 => 9번 사용 - 내려갈 경우 : 35 - 5 -> 30 - 30 => 8번 사용 3은 5보다 작으므로 내려가는 게 유리합니다...
2023.06.05 -
[Programmers] Lv2. 뒤에 있는 큰 수 찾기 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 입력 데이터의 크기가 백만 개라 \( O(N^2) \)으로는 풀 수 없습니다. 어떤 자료구조를 쓸까 고민을 많이 했습니다. 문제에서 볼 수 있는 특징들은 다음과 같습니다. 입력 데이터를 차례대로 순회 시작 현재 숫자가 뒤의 숫자보다 작다면, 뒤의 숫자는 뒷 큰수이므로 현재 숫자를 해당 뒷 큰수로 교체 현재 숫자가 뒤의 숫자보다 크다면, 뒷 큰수가 있을 수도 없을 수도 있는 숫자이므로 따로 관리 따로 관리되는 이 숫자들은 훗날 뒷 큰수를 만났을 때, 해당 뒷 큰수보다 작은 숫자들..
2023.06.04 -
[Programmers] Lv2. 모음 사전 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 백트래킹(Backtracking)을 이용해 사전 순서대로 단어를 조합하는 방식으로 풀었습니다. 1)알파벳을 하나씩 붙이고 떼는 과정에서 인덱스 번호를 증가시키고, 2)원하는 단어를 찾으면 탐색을 중지하도록 구현하였습니다. 재귀(Recursion)와 백트래킹(Backtracking) 개념이 처음에는 익숙하지 않아, 코드로 구현하기 어려웠는데 점점 연습하다 보니 익숙해 지는 것 같습니다. ✏️소스 코드 및 결과 #include #include using namespace std; ..
2023.06.04 -
[Programmers] Lv2. 호텔 대실
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 주어진 문자열 [대실 시작 시각, 대실 종료 시각]을 분(minute)으로 환산하여 정수로 저장 ex) ["14:30", "15:30"] \(\rightarrow\) [870, 930] 저장한 예약 시간들을 오름차순으로 정렬 예약 시간들을 순회 시작 현재 사용 중인 방들을 순회하여, 해당 방의 마지막 대실 이용 시간과 비교 해당 방에 예약 추가가 가능하면 추가 후, 오름차순 정렬 예약 추가가 불가능하면 새로운 방을 추가하여 삽입 순회를 모두 돌았다면, 방 크기 리턴 ✏️소스 코..
2023.06.03 -
[Programmers] Lv2. 미로 탈출 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 처음엔 DFS로 접근했지만 시간 초과가 떴습니다. 시간을 줄이기 위해 목표(레버 혹은 출구) 지점 방향으로 이동하게끔 알고리즘을 다시 짰지만, 가는 길목이 막혀서 다른 길로 돌아가야 할 때 방향이 달라져 DFS 탐색이 끝나버리는 문제가 발생했었습니다. 고민을 많이 해봤지만 답이 보이지 않아 해당 전략은 포기하고, BFS로 갈아타서 풀게 되었습니다. BFS로 푼 적이 별로 없어 코드 작성하는 게 조금 어색했는데, 이 참에 한 번 연습해 봐야겠습니다. ✏️소스 코드 및 결과 #in..
2023.06.03 -
[Programmers] Lv2. 무인도 여행 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 읽자마자 BFS가 떠올랐고, BFS를 많이 사용해 보지 않은 저에게 연습할 좋은 기회다 싶었습니다. #include #include #include #include using namespace std; int rowMoving[4] = { -1, 1, 0, 0 }; int columnMoving[4] = { 0, 0, -1, 1 }; // BFS int ExploreSurroundingLand(const vector& maps, vector& visited, pair curre..
2023.06.03