목록구현 (98)
어흥
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 1. 주의할 점 - 문제에 적힌 대로만 구현한다 - 빈 문자열 처리를 알맞게 한다 2. 구현 - DFS() 함수에서 다음과 같은 작업을 순차적으로 한다 - 넘겨 받은 파라미터가 빈 문자열이면 그대로 반환한다 - 넘겨 받은 파라미터를 균형잡힌 괄호 문자열 U와 나머지 부분인 V로 나눈다 - isComplete 함수를 통해 U가 올바른 괄호 문자열인지 확..
문제 링크: https://www.acmicpc.net/problem/22234 22234번: 가희와 은행 가희는 창구가 하나인 은행을 운영하고 있습니다. 가희의 은행이 영업을 시작했을 때, 대기 줄에는 손님이 N명 있습니다. [그림 1] 카운터 직원과 N명의 손님 x번 손님에 대한 정보는 x번 손님의 www.acmicpc.net 1. 주의할 점 - RR(RoundRobin) 문제다 - 스케줄링 문제의 경우, 각 작업이 일어나는 순서와 정렬 방식에 주의한다 2. 구현 - 대기큐 Q에는 0초에 대기중인 고객들에 대한 정보를 저장한다 - 1초 이후에 들어오는 고객들은 입장 시간에 대한 오름차순으로 정렬되어 있지 않기 때문에 우선순위 큐 PQ를 통해 정렬을 한다 - 현재 시간(curTime)을 0초로 설정하고..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/60063 코딩테스트 연습 - 블록 이동하기 [[0, 0, 0, 1, 1],[0, 0, 0, 1, 0],[0, 1, 0, 1, 1],[1, 1, 0, 0, 1],[0, 0, 0, 0, 0]] 7 programmers.co.kr 1. 주의할 점 - 구현해야 하는 조건이 많다 - 2개의 좌표를 어떤 방식으로 저장할 것인지 정한다 2. 구현 - BFS를 통해 문제를 해결한다 - Info 객체를 통해 로봇의 정보를 저장한다. 로봇의 한 좌표와 어떤 방향에 다른 좌표가 위치해 있는지 저장한다. - 우선순위큐 pq에 로봇의 정보를 담으며, 소요 시간의 오름차순으로 정렬한다 - Board의 정보를 static 변수..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/77886 코딩테스트 연습 - 110 옮기기 0과 1로 이루어진 어떤 문자열 x에 대해서, 당신은 다음과 같은 행동을 통해 x를 최대한 사전 순으로 앞에 오도록 만들고자 합니다. x에 있는 "110"을 뽑아서, 임의의 위치에 다시 삽입합니다. 예를 programmers.co.kr 1. 주의할 점 - 브루트포스로 풀지 않는다 - 선형시간(O(N))내로 푼다 2. 구현 - 입력 받은 문자열에 대해 110의 개수를 확인한다 - 110을 제외한 문자열을 Deque에 담도록 한다 - 110의 개수가 1개 이상일 때, 문자열 어디에 삽입하면 사전 순서로 가장 빠를지 예상한다 Deque에는 다음과 같은 형태만 들어..
문제 링크: https://www.acmicpc.net/problem/2064 2064번: IP 주소 네트워크에 연결되어 있는 컴퓨터들은 각각 하나의 IP 주소를 갖게 된다. 그리고 이러한 IP 주소를 갖는 컴퓨터들이 여러 개 모여서 하나의 IP 네트워크를 구성하게 된다. IP 네트워크는 ‘네트워 www.acmicpc.net 1. 주의할 점 - 비트마스킹을 이용해도 되지만, 네트워크 주소의 결과가 0.255.255.0이 나왔을때 전부 0으로 바꿔야하는 작업이 필요 2. 구현 - 입력 받는 문자열을 int2string() 함수를 이용하여 전부 2진수로 바꾼다 - 해당 반환값을 Ip[] 배열에 String 형태로 저장한다 - 모든 문자열을 처음부터 비교하여 왼쪽에서부터 Idx-1까지 같다고 할때, Idx를 ..
문제 링크: https://www.acmicpc.net/problem/16118 16118번: 달빛 여우 첫 줄에 나무 그루터기의 개수와 오솔길의 개수를 의미하는 정수 N, M(2 ≤ N ≤ 4,000, 1 ≤ M ≤ 100,000)이 주어진다. 두 번째 줄부터 M개의 줄에 걸쳐 각 줄에 세 개의 정수 a, b, d(1 ≤ a, b ≤ N, a ≠ b www.acmicpc.net 1. 주의할 점 - 늑대가 같은 지점에 최단 경로로 도착하는것보다 돌아서 가는게 빠를 수 있다(느릴 때, 빠를 때 적절히 이용) - 1번째 Node까지의 최단시간을 0으로 설정하지 않는다(0을 이용하여 돌아갈 수 있다) - d와 M의 범위가 크므로 Long Long을 이용한다 2. 구현 - Info 객체를 이용한 우선순위 큐를 ..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 1. 주의할 점 - 2중 For문은 최대한 사용하지 않도록 한다 2. 구현 - Brown = 2*(Row-1)+2*(Col-1) 을 통해 rowPlusCol 값을 구한다 - For문을 통해 Row와 Col값을 구하여 Answer에 추가한다 #include #include using namespace std; vector solution(int b..
문제 링크: https://www.acmicpc.net/problem/18235 18235번: 지금 만나러 갑니다 첫 번째 줄에 세 정수 N, A, B가 주어진다. (2 ≤ N ≤ 500,000, 1 ≤ A, B ≤ N, A ≠ B) www.acmicpc.net 1. 주의할 점 - 구간은 [1,len]이다 - 같은 점을 다른 Day에 방문할 수 있다 Ex) 구간: [1,10] 시작위치: 5 목표위치: 4 방법1: 5 → 4 방법2: 5 → 6 → 4 방법3: 5 → 6 → 8 → 4 각 방법으로 5→4로 갈 수 있는 날은 1,2,3일에 모두 도달 가능 2. 구현 - Arr[] 배열을 통해 해당 위치에 방문한 날을 적는다 - Info 구조체를 이용하여 현재 위치, 날, 점프 거리를 담는다 - Queue를 ..