목록프로그래머스 (164)
GitHubSeob
문제 https://school.programmers.co.kr/learn/courses/20847/lessons/255902 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 규칙만 찾고 재귀로 풀면 할만하다. 처음 시작은 "Rr"로부터 시작한다. 부모가 "RR"인 경우는 자식은 모두 "RR"이다. 부모가 "Rr"인 경우는 자식은 "RR", "Rr", "Rr", "rr"이다. 부모가 "rr"인 경우는 자식은 모두 "rr"이다. [gen, idx]가 입력되면 gen이 2가 될 때까지 재귀를 돌린다. 부모를 찾아갈수록 idx는 4로 나눈다. 계속 재귀..

문제 https://school.programmers.co.kr/learn/courses/15009/lessons/121690 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 3차원 벡터 vector[y][x][신발 사용 여부]와 벽을 나타내기 위한 2차원 벡터를 선언하여 풀었다. 맨 왼쪽 아래칸(시작칸)이 (1, 1) 좌표이며 (x=n, y=m)인 도착지점을 가는데 필요한 최소 시간을 구하는 문제이다. BFS로 문제를 풀었고, queue에는 Coord라는 구조체를 선언하여 입력해 주었다. y좌표, x좌표와 해당 지점을 갔을 때 신발을 사용했는지 ..

문제 https://school.programmers.co.kr/learn/courses/15009/lessons/121689 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 문제를 잘못 읽어 조금 헤맸다. 직원은 한 명이기 때문에 여러 음료수를 동시에 만들 수 없다. 손님의 대기 순서가 변하는 경우도 없으므로 큐를 사용하여 풀 수 있다. 큐에는 대기 손님이 음료를 받아 나가는 시간을 입력하면 된다. for (int idx = 0; idx < order.size(); ++idx) { while (!waiting.empty() && waiting.f..

문제 https://school.programmers.co.kr/learn/courses/15009/lessons/121688 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 우선순위 큐를 사용하면 간단하게 풀린다. 문제를 읽어보면 사원 중에서 가장 작은 능력치를 가진 두 사원을 뽑아 더하고, 더한 값이 두 사원은 능력치가 된다. 따라서 우선순위 큐를 사용해서 오름차순으로 정렬을 하고, top부분의 두 원소를 뽑아 값을 더하고 다시 우선순위 큐에 입력하면 된다. 코드 #include #include #include using namespace st..

문제 https://school.programmers.co.kr/learn/courses/15009/lessons/121687 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 'R'은 오른쪽으로 90도 회전, 'L'은 왼쪽으로 90도 회전, 'G'는 한 칸 전진, 'B"는 한 칸 후진하는 명령어이다. 로봇은 처음에 (0, 0) 위치에 +y 축을 향하여 놓여 있다. 2차원 벡터를 쓸 때 수학에서 나타내는 좌표와 달리, 아래쪽으로 갈수록 y가 증가하게 작성하고 있어서 이 부분에서 살짝 헷갈렸다. 네 방향을 나타내는 dy, dx 벡터는 90도로 회전할 ..

문제 https://school.programmers.co.kr/learn/courses/20847/lessons/255903 문제풀이 프로그램의 우선순위는 점수가 낮은 프로그램이 가장 먼저, 점수가 같다면 먼저 호출된 프로그램이 우선순위가 높아진다. 먼저 주어진 2차원 벡터 program을 호출된 시각 오름차순으로 정렬을 한다. while문을 이용해 프로그램끼리 비교할 예정이므로 점수, 실행 시간순으로 정렬은 필요가 없다. 우선순위큐를 선언하고 따로 순서를 정하는 조건을 세운다. 문제에서 주어진 대로 점수를 먼저, 점수가 같다면 먼저 호출된 프로그램이 top부분에 있도록 한다. 다음은 모든 프로그램을 탐색할 수 있게 while문을 작성한다. 만약 우선순위큐가 비어있거나 현재 시각이 프로그램의 호출 시각..

문제 https://school.programmers.co.kr/learn/courses/20847/lessons/255901 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 DFS로 문제를 풀었다. 조건을 두었기 때문에 모든 경우의 수가 아닌 (운동 종목 개수)^(운동 종목 개수)만큼만 탐색한다. 한 학생은 최대 한 개의 종목만 대표할 수 있고, 운동 종목 개수만큼 대표선수를 뽑아야 한다. 따라서 운동 종목별로 모든 운동 종목의 개수만큼의 학생만 따로 뽑아 그 경우의 수를 모두 찾는 식으로 풀었다. 만약 운동이 3가지(테니스, 탁구, 수영), 학..

문제 https://school.programmers.co.kr/learn/courses/20847/lessons/255900 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 어떤 알파벳이 연속으로 나오는 부분이 두 부분 이상이라면 외톨이 알파벳이다. 한 칸 앞의 알파벳과 현재 알파벳을 비교하면서 같은 알파벳일 경우 다음 알파벳으로 넘어간다. cnt라는 int형 벡터를 선언해서 알파벳이 묶여서 몇 번 등장했는지 카운트한다. 반복문이 종료되면 cnt벡터를 탐색하면서 2번 이상 카운트됐다면 answer에 해당 알파벳을 더해준다. 코드 #include ..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12905 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 누적합으로 풀었는데 다 풀고 다른 풀이를 보니 DP로 푼 사람이 많았다... 2차원 벡터의 누적합을 구한다. 먼저 x 증가하는 방향으로 누적합을 구한 뒤, y가 증가하는 방향으로 누적합을 구한다. 표의 열 또는 행 중 작은 값이 답의 최댓값이 될 수 있으므로, 해당 값부터 시작한다. 한 변의 길이가 len인 정사각형 구간을 반복문을 통해 값을 구한다. 만약 해당 구간의 누적합이 le..