본문 바로가기

코테58

[java] 프로그래머스스쿨 연습문제 Lv.2 Greedy 문제 모음 1. 호텔 대실 코딩테스트 연습 - 호텔 대실 | 프로그래머스 스쿨 (programmers.co.kr) 풀이 1. 체크인 시간과 체크아웃 시간을 저장하기 위해 2차원 배열 schedule을 선언한다. 1-1. split과 parseInt를 사용해 순서대로 저장한다. 1-2. 시간*60+분 1-3. 체크아웃 시간을 저장할 때에는 청소시간 10분을 추가로 더한다. 2. schedule을 체크인 시간순으로 정렬하고, 체크인 시간이 같다면 체크아웃 시간으로 정렬한다. 3. 우선순위 큐를 선언하여 schedule의 checkout 시간을 정렬된 순서대로 삽입한다. 4. 만약 우선순위 큐의 첫 번째 원소가 다음 입실 시간보다 작거나 같다면 poll, 퇴실시간을 큐에 추가 5. 그렇지 않다면 큐에 퇴실시간을 add .. 2023. 4. 28.
[java] 프로그래머스스쿨 연습문제 Lv.1 문제 모음 2 1. 개인정보 수집기간 코딩테스트 연습 - 개인정보 수집 유효기간 | 프로그래머스 스쿨 (programmers.co.kr) 풀이 1. HashMap에 약관별 기간(terms의 정보)을 저장한다 1-1. key = 약관, value = 기간 2. 날짜를 비교할 때 연, 월, 일을 따로 비교하기가 복잡하므로, 총 일수로 바꿔준다(1년=365일처럼) 2-1. 연*12*28 2-2. 월*28 2-3. 따라서, today = 연*12*28 + 월*28 +일 3. 반복문을 통해 privacies의 원소를 하나씩 읽어가며 2번에서 today를 총 일수로 바꿔준것과 동일하게 바꾼다. 4. 바꾼 총 일수에서 1을 빼준 값과 today의 총 일수를 비교하여, today의 총 일수가 더 크면 answer에 삽입 회고 - S.. 2023. 4. 24.
[java] 프로그래머스스쿨 연습문제 Lv.1 문제 모음 1 1. 달리기 경주 https://school.programmers.co.kr/learn/courses/30/lessons/178871 풀이 1. 해쉬맵 두 개를 선언한 후 하나는 key값을 이름 value값을 등수로, 다른 하나는 key값을 등수 value값을 이름으로 설정한다. 1-1. map1 : 이름을 통해 등수를 도출할 때 사용 1-2. map2 : 등수를 통해 이름을 도출할 때 사용 2. for문을 통해 각 해쉬맵에 players 배열을 사용해 값을 입력한다. 3. callings 배열을 for문으로 읽어가며 해쉬맵의 값을 바꾼다. 3-1. name이라는 String변수에 바로 앞에 있는 사람의 이름을 저장한다. 3-2. rank라는 int변수에 바로 앞에 있는 사람의 등수를 저장한다. 3-3... 2023. 4. 13.
[C/C++] 나동빈 미로 탈출, BFS 보호되어 있는 글 입니다. 2023. 3. 26.
[C/C++] 나동빈 음료수 얼려먹기, DFS 보호되어 있는 글 입니다. 2023. 3. 26.
[C/C++] DFS, BFS 1. DFS(Depth First Search, 깊이 우선 탐색) (1) 깊이 우선 탐색이란? : 여러 개의 노드(node)가 간선(edge)으로 연결되어 있는 그래프(graph)에서 탐색을 진행하고자 할 때, 처음 탐색을 시작할 노드와 가장 가까운 노드를 방문한 후, 새로 방문한 노드와 가장 가까운 노드로 깊이 들어가는 방식이다. 한 노드에서 이동할 수 있는 여러 가지 노드를 한번씩 방문하는 것이 아니라, 가장 가까운 노드가 있다면 그 노드로 이동한 후 또 그 노드와 가장 가까운 노드로 또 이동하는 과정을 반복하는 것이다. 한 번 방문한 노드는 방문 표시를 하며 후에 거쳐갈 수는 있어도 다시 방문하지는 않는다. 탐색 시작 위치와 방향이 정해지지 않았다면 일반적으로 오름차순으로 이동하면 된다. (2) 기.. 2023. 3. 24.