문제 요약 50 이하의 자연수 N이 주어진다. 그 다음에 100 이하의 음이 아닌 정수 N개의 원소를 가진 배열 A와 B가 주어질때, A의 원소를 재배열해서 $\\sum\\limits\_{i = 0}^{N - 1}(A_i\\times B_i)$의 결과를 최대로 만들어야
그래프가 주어질 때, 1번 정점으로부터 가장 멀리 떨어져 있는 정점들을 구해야 한다.그리고 다음 항목에 해당하는 값들을 출력하면 된다.1\. 정점 번호가 가장 낮은 정점의 정점 번호2\. 1번 정점으로부터의 거리3\. 가장 멀리 떨어져 있는 정점들의 개수가중치가 없는
완전 이진 트리에 대해서 문제에서 제시된 규칙을 따르는 방문 순서가 주어진다. 이 방문 순서를 참고하여 트리에서 깊이별로 원소를 출력해야 한다.테스트케이스와 문제의 그림을 보면, 구간의 중간의 원소가 서브트리의 루트임을 알 수 있습니다.1 6 4 3 5 2 7이 입력에
트리에 대한 두 개의 쿼리를 수행해야 한다.1\. 정점 x를 포함한 모든 자손들의 가중치를 XOR한 값 출력2\. 정점 x의 모든 자손들의 가중치에 대해 y를 XOR 연산 수행회사 문화 시리즈와 XOR을 합친 것 같은 문제였다.먼저 오일러 경로 테크닉을 이용해서 세그먼
14938번: 서강그라운드한 정점으로부터 거리가 m 이하인 정점들은 방문할 수 있다. 이때 정점을 하나 골라서 방문할 수 있는 정점들로부터 얻을 수 있는 최대 이윤을 구해야 한다.모든 정점 쌍에 대해서 방문 가능 여부를 알아야 하기 때문에 결국에는 모든 정점 쌍 사이의
10972번: 다음 순열10,000개 이하의 수로 이루어진 수의 수열이 주어질 때, 사전 순으로 다음에 오게 될 순열을 구해야 한다.문제의 이름에서 알 수 있듯이 std::next_permutation을 이용하면 간단하게 풀 수 있습니다.std::next_permuta
1325번: 효율적인 해킹그래프의 각 정점으로부터 도달할 수 있는 정점의 수가 최대인 정점들을 구해야 한다.문제를 처음 봤을 때는 시간 제한을 제대로 보지 않아서 강한 연결 요소를 생각하고 있었습니다.하지만 시간 제한이 5초나 되는 것을 확인하고 그래프 탐색을 N번 돌
1722번: 순열의 순서1부터 N까지의 수에 대해서 다음 두 가지 중 하나를 구한다.1\. 입력받은 수열이 몇 번째 순열인지2\. K번째 순열std::next_permutation을 안다면 std::next_permutation을 K번 호출하는 풀이를 생각해 볼 수도
문제 링크
1158번: 요세푸스 문제N명의 사람들이 원을 이루고 앉아있을 때, K번째 사람을 반복하여 제거해 만들 수 있는 (N, K)-요세푸스 순열을 구하는 프로그램을 작성한다.큐를 이용해서 간단하게 풀 수 있습니다.1부터 N까지의 수를 순서대로 큐에 삽입한다.큐가 빌 때까지
11170번: 0의 개수N부터 M까지 수를 나열했을 때, 0의 개수를 모두 세야한다.M이 100만 정도밖에 되지 않는 것에 비해서 시간 제한은 3초나 된다. 따라서 구간 내의 모든 수를 문자열로 변환을 해준 다음에 0을 직접 세도 문제가 없다.std::to_string
2251번: 물통물통의 용량 A, B, C가 주어지고, 초기에는 C만 가득 차 있는 상태이다. 물통의 물을 한 물통이 비거나 다른 물통이 꽉 찰때까지 횟수 제한 없이 옮길 수 있다.A 물통이 비었을 때 C 물통에 담겨 있을 수 있는 물의 양을 모두 출력한다.너비 우선
2251번: 물통주어진 문자열이 회문인지, 유사회문인지, 그 외인지 판별해야한다.회문은 앞뒤로 봤을 때 순서가 같은 문자열이며, 유사회문은 문자열에서 문자 하나를 제거했을 때 회문이 되는 문자열을 말한다.문자열의 양 끝단에서 시작해 두 포인터로 풀 수가 있습니다. 하지
1314번: 폴리오미노'.'와 'X'로 이루어진 보드판이 주어졌을 때, 'AAAA'와 'BB' 두 개의 폴리오미노를 이용해서 'X'를 모두 덮어야 한다.상당히 쉬운 문제였습니다.사전순으로 가장 앞서는 답을 출력해야 하는데, 알파벳 순으로 BB보다 앞에 있는 AAAA 폴
15662번: 톱니바퀴 (2)각 톱니가 N 또는 S극을 가진 일련의 T개의 톱니바퀴가 주어질 때, 톱니바퀴의 번호와 방향이 주어지면 일련의 톱니바퀴들을 회전시키는 시뮬레이션을 해야한다.단순 구현 문제입니다.톱니바퀴와 거의 유사합니다. 하지만 톱니바퀴는 톱니바퀴의 갯수가
문제 링크 16564번: 히오스 프로게이머 문제 요약 > N개의 캐릭터에 대한 레벨이 주어진다. 팀의 목표 레벨을 캐릭터들의 레벨의 최솟값으로 정의한다. 캐릭터들의 레벨은 총 K만큼 올릴 수 있다. 이때 캐릭터들의 레벨을 올려서 가능해지는 최대 팀 목표 레벨을 구해야
10423번: 전기가 부족해한 나라에 여러 개의 발전소가 있는 도시가 있다. 이 나라에서 한 쌍의 도시 사이에는 케이블을 설치할 수 있다. 케이블을 설치할 수 있는 도시 쌍들과 설치 비용이 주어질 때, 모든 도시가 발전소에 연결될 수 있도록 하는 최소 설치 비용을 구해
2346번: 풍선 터뜨리기N개의 풍선이 주어지고, 풍선 안에는 종이가 적혀 있다. 1번 풍선부터 시작해서 풍선을 터뜨리는데, 풍선 안의 종이에 적힌 숫자만큼 이동한 뒤에 풍선을 터뜨린다. 이때 터지는 풍선의 순서를 출력해야 한다.N이 1000 정도이고, 2초나 주어지기
14719번: 빗물2차원 세계에 쌓여 있는 블록이 주어지고 비가 충분히 많이 올 때, 고일 수 있는 빗물의 총량을 출력한다.간단한 구현 문제였습니다.입력 받은 높이를 2차원 배열에 저장을 해준 다음에, 가장 아래 행부터 순서대로 검사를 해주면 됩니다. 맨 오른쪽 열부터
1302번: 빗물하루 동안 판매된 책의 이름이 나열될 때, 가장 많이 팔린 책의 이름을 출력해야 한다.std::map을 이용하면 쉽게 해결할 수 있습니다.입력을 받으면 맵의 내부에 해당 Key가 존재하는지 확인하고, 만약 존재하지 않는다면 value를 0으로 해서 삽입
9012번: 괄호'('와 ')'로 이루어진 괄호 문자열이 주어질 때, 괄호의 모양이 바르게 구성된 올바른 괄호 문자열을 판정해야 한다.이 문제의 알고리즘 분류는 스택으로 붙어 있지만 스택은 사용하지 않아도 됩니다.괄호의 종류는 '(', ')' 뿐이기 때문에 스택에 저장
백준 2659번십자모양 카드의 각 모서리에 4개의 숫자가 주어진다. 이 카드를 회전시켜 만들 수 있는 수 중에 가장 작은 수를 '시계수'라고 한다.십자모양 카드가 주어질 때, 해당 카드의 시계수가 1부터 9까지 숫자로 만들 수 있는 모든 시계수 중에 몇 번째로 작은 시
11968번: High Card Wins베시와 엘시가 1부터 2N까지의 카드를 N개씩 나눠가진다. 둘이 카드를 하나씩 내서 수가 큰 쪽이 이기는 게임을 하려고 한다. 베시는 엘시가 낼 카드의 순서를 알고 있다. 이때 베시는 최대 몇번 승리가 가능한지 구해야 한다.그리디
1244번: 스위치 켜고 끄기N개의 스위치의 상태가 주어지고, M명의 학생들이 주어진다. 남학생은 주어진 번호의 배수에 해당하는 스위치들의 상태를 전환한다. 여학생은 주어진 번호의 스위치로부터 대칭인 최대 구간의 스위치들의 상태를 전환한다. 이때 M명의 학생이 스위치를
14501번: 퇴사N+1일에 퇴사를 하려고 하는데, 퇴사 전에 최대한 많은 상담을 하려고 한다. 1일부터 N일까지 매일 상담이 존재하고, 각 상담에는 걸리는 기간, 받는 금액이 정해져 있다. 이때, 받을 수 있는 금액을 최대화해야한다.정말 간단한 브루트포스 알고리즘 문
14465번: 소가 길을 건너간 이유 5N개의 연속된 횡단보도가 있고, 각 횡단보도에는 신호등이 있다. 이때 B개의 신호등이 쓰러졌을 때, 연속한 K개의 신호등이 존재하기 위해 수리해야하는 신호등의 수를 구해야 한다.쉬운 누적 합 문제였습니다.신호등이 존재하면 1, 존
2477번: 참외밭$1m^2$너비의 참외밭에서 나는 참외의 수가 주어지고, 반시계 방향으로 육각형 밭의 변의 방향과 길이가 주어질 때, 밭에서 나는 참외의 수를 구해야 한다.가장 긴 가로변과 세로변은 인접해 있다는 것을 그림을 보면 쉽게 알 수 있습니다.가로변과 세로변
15661번: 링크와 스타트(https://www.acmicpc.net/problem/15661두 선수가 같은 팀에 속했을 때, 그 팀이 얻게되는 능력치가 주어진다. 이때, 팀을 편성해서 두 팀의 능력치 차이의 최솟값을 찾아야 한다. 두 팀의 팀원 수는 달라도
13140번: Hello World!hello + world = N을 만족하도록 만들어야 한다. 각 자리에는 0 ~ 9까지의 서로 다른 수가 들어올 수 있고, 이 중 h와 w는 0이 될 수 없다.간단한 완전탐색 문제라고 생각할 수 있습니다. 0 ~ 9까지 서로 다른 수
2485번: 가로수기준점으로부터 가로수들이 떨어져 있는 거리가 주어진다. 그 사이사이에 가로수를 추가적으로 심어서 각 가로수 사이의 간격을 동일하게 만들고자 한다. 이를 위해 심어야할 가로수 수의 최솟값을 구해야 한다.최대공약수를 이용하면 해결할 수 있습니다.먼저 원래
2597번: 줄자접기줄자가 있고, 줄자 위에는 빨간점, 파란점, 노란점이 한 쌍씩 있다. 줄자를 빨간점, 파란점, 노란점이 순서대로 붙도록 접어줄 때, 줄자의 최종 길이를 구해야 한다.간단한 구현 문제라고 생각했지만 생각보다는 시간이 많이 걸린 것 같습니다.l, r이라
링크텍스트영희의 출발점과 각 점에서의 이동 정보가 (위치, 방향, 거리) 순으로 주어질 때, 영희의 최종 목적지를 구해야한다. 단, 모든 정보들의 위치는 중복되지 않는다.위치가 중복되지 않기 때문에, 위치를 키로 하는 맵을 생성해줍니다. 그리고 출발점에서부터 현재 위치
8933번: MCS{A, G, T, C}의 개수가 동일한 문자열을 합성적으로 같은 문자열이라고 한다. 문자열이 주어질 때, 이 문자열에서 길이가 k인 부분 문자열들이 존재한다. 이 부분 문자열들 중에 합성적으로 같은 문자열이 가장 많은 것을 k-MCS라고 한다. 이때
23038번: 박스 그림 문자박스 그림 문자를 통해서 만든 모양 중에 선이 끊어진 곳이 없는 모양을 '아름다운 모양'이라고 한다. 어떤 모양이 주어졌을때, 이를 아름다운 모양으로 만들어야 한다.정말 쉬운 구현 문제였습니다.주어진 입력을 3 \* 3 단위의 모양으로 쪼개
14670번: 병약한 영정영정이가 가지고 있는 약의 효능과 이름이 주어진다. 영정이가 겪는 증상이 주어질 때, 어떤 약을 먹어야 하는지 출력해야 한다.각각의 약은 모두 다른 이름을 가지고 있으며, 서로 다른 증상을 해결함이 보장되기 때문에 간단하게 해결할 수 있습니다.
20436번: ZOAC 3성우가 독수리 타법으로 키보드를 입력한다. 두 손을 동시에 움직일 수는 없으며, 한글 자음이 있는 키는 왼손, 그 외의 키는 오른손으로 누르게 된다. 키를 누르는데 1의 시간이 걸리고, 손가락을 이동하는데 택시거리만큼의 시간이 걸린다. 초기 손
문제 링크 12739번: 돌림판 (Small) 문제 요약 >N등분 되어 있는 돌림판이 있고, R, G, B 세 가지 색깔로 돌림판이 칠해져 있다. 주어진 조건에 따라서 돌림판의 색깔을 K번 바꾼다. 이때 마지막 상태의 돌림판의 각 색깔의 수를 출력해야 한다. 조건은
https://www.acmicpc.net/problem/14562S와 T를 같게 만드는 동작의 최소 횟수를 구해야 한다.다음의 동작은 1회로 취급된다.1\. S에 2를 곱하고 T에 3을 더한다.2\. S에 1을 더한다.매 단계마다 몇가지 동작을 선택해서 시행
8983번: 사냥꾼N마리의 동물과 M개의 사대가 있다. 사냥꾼은 각 사대에서 사격이 가능하다. 사대는 Y좌표가 0이고, X좌표만 존재한다. 사냥꾼의 총의 사거리는 L이다. N마리의 동물에 대한 X, Y좌표가 주어질 때, 사냥꾼이 사냥할 수 있는 동물의 수를 구해야 한다
16502번: 그녀를 찾아서4개의 정점을 가진 유향 그래프가 주어진다. 해당 그래프의 간선은 확률을 가지고 있으며, 한 정점에서 진출하는 간선의 확률의 합은 1이다. 이 확률은 '그녀'가 한 정점에서 다른 정점으로 이동할 확률이다.임의의 출발점에서 시작해서 정해진 횟수
1311번: 할 일 정하기1N명의 사람과 N개의 일이 있다. $$D\_{ij}$$를 i번째 사람이 j번째 일을 할 때의 비용이라고 할 때, 모든 일을 하는 최소 비용을 구해야 한다.비트마스킹 DP 문제였습니다. 각각 다음 사람으로 재귀호출을 하면서 최솟값을 갱신해주면
19941번: 햄버거 분배햄버거, 사람으로 이루어진 N개의 자리가 주어진다. 각 사람은 자신으로부터 K 이하 거리의 햄버거를 먹을 수 있다. 이때, 햄버거를 먹을 수 있는 사람의 최댓값을 구해야 한다.그리디하게 접근하였습니다. 사실 그리디 알고리즘의 경우 증명이 중요하
10815번: 숫자 카드상근이가 가지고 있는 N개의 카드가 주어진다. 이후 M개의 카드가 주어졌을 때, 상근이가 이 카드들을 가지고 각각 있는지 구해야 한다.단순이 상근이가 가지고 있는 카드가 먼저 나열되고, 후에 제시되는 카드들이 그 목록 안에 있는지 확인하면 되는
2573번: 빙산빙산의 높이가 주어진다. 빙산은 매 시간마다 바다가 인접한 면의 수만큼 녹아내리는데, 빙산이 두 조각 이상으로 나눠질 때까지 걸리는 시간을 구해야 한다.단순 구현 문제입니다. 주의해야할 점은 빙산의 각 부분은 동시에 녹아내리기 때문에, 녹아내릴 양을 미
2606번: 바이러스그래프가 주어질 때, 1번 정점으로부터 방문 가능한 정점의 수를 구해야 한다.1번 정점부터 깊이 우선 탐색 또는 너비 우선 탐색을 돌리면 됩니다. 제 경우에는 깊이 우선 탐색을 이용해서 풀었습니다. 정점의 수가 적기 때문에 인접 리스트 대신에 인접
10836번: 여왕벌매일 애벌레가 성장한다. 애벌레는 $$M \\times M$$ 크기의 격자에 담겨 있는데, 초기의 크기는 모두 1로 동일하다. 가장 위의 열과 가장 왼쪽 행의 애벌레들의 성장량은 입력으로 주어진다. 이 수는 0, 1, 2 중에 하나이다. 이 값들은
1102번: 발전소발전기들로 이루어진 그래프가 주어진다. 이 그래프에서 발전기들은 켜져 있거나 꺼져 있다. 꺼져 있는 발전기는, 인접한 켜져 있는 발전기로 켤 수 있다. 발전기를 켤 때는 비용이 든다. 이 그래프에서 최소한 P개의 발전기가 켜져 있도록 하기 위한 최소
1405번: 미친 로봇동서남북으로 움직일 수 있는 로봇이 있다. 로봇이 각 방향으로 갈 확률이 주어질 때, 이 로봇이 같은 장소를 재방문하지 않고 N번 이동할 수 있을 확률을 구하여라N이 14인데, 방향은 4이기 때문에, 4개 방향에 대해서 N까지 완전탐색을 다 돌려준
2503번: 숫자 야구숫자 야구 게임에 대한 N번의 질의와 그에 대한 답이 주어졌을 때, 모든 가능한 정답의 수를 구해야한다.예전에 풀었던 문제였는데, 참여 중인 스터디에서 문제를 올리셔서 재차 풀어봤습니다.기본적으로 세자리 수는 어차피 몇 개 되지 않기 때문에 브루트
1107번: 리모컨0 ~ 9까지 숫자와 +, - 버튼을 가진 리모컨이 있다. 이 리모컨 버튼 중의 일부는 고장난 상태이다. 고장난 버튼아 주어졌을 때, 원하는 채널로 가기 위해 버튼을 눌러야 하는 최소 횟수를 구해야 한다.9000명 이상이 푼 웰노운 문제입니다. 정답률
12018번: Yonsei TOTO주어진 마일리지로 수강신청을 한다. 과목별로 일정한 마일리지를 할당할 수 있다. 각 과목의 신청 인원 중 제한된 수강인원 수만큼, 마일리지가 높은 순서대로 과목을 수강할 수 있다. 성준이가 수강신청을 하고자 할때, 들을 수 있는 최대
15686번: 치킨 배달도시에 치킨집과 집이 있다. 도시의 모든 집에서 가장 가까운 치킨집까지의 거리의 합을 치킨 거리라고 한다. 치킨집을 M개만 남기고 나머지는 문을 닫으려고 할 때, 치킨 거리를 최소화시켜야 한다.간단한 문제였지만 실수로 인해서 TLE를 받았었습니다
1759번: 암호 만들기C개의 알파벳 중에서, 서로 다른 L개의 알파벳 소문자로 구성된 암호를 만들어야 한다. 이 암호는 최소한 한 개의 모음과 두 개의 자음을 포함해야 한다. 이때 가능한 암호들을 사전순으로 출력해야 한다.L, C가 모두 15정도입니다. $$\_nC_
14786번: Ax+Bsin(x)=C ②A, B, C가 주어질 때, $$Ax+Bsin(x)=C$$를 만족하는 $$x$$를 찾아야 한다. 절대/상대 오차는 $$10^{-9}$$까지 허용된다.수치해석을 들으셨다면 쉽게 푸실 수 있습니다. 뉴턴-랩슨법을 이용하면 됩니다.$$
1606번: 침투 계획 세우기육각형 타일로 이루어진 집이 있다. 이 집에서 원숭이와 멍멍이가 위치를 인식하는 방법이 다르다. 멍멍이가 위치를 인식하는 방법을 원숭이가 위치를 인식하는 방법으로 바꿔야 한다.처음에는 방법이 바로 떠오르지는 않았는데, 좌표의 두 값 모두 0
1941번: 소문난 칠공주25명의 학생 중에서 7명의 학생들을 뽑는데, 이 뽑힌 학생들은 가로 또는 세로로 인접해서 하나의 그룹을 이뤄야 한다. 이 학생들 중에서 이다솜파 학생이 4명 이상 있도록 할 수 있는 경우의 수를 구해야 한다.$$\_{25}C_7=480700$
11559번: Puyo Puyo뿌요뿌요 게임의 현재 상태에서 연쇄가 몇 번 연속으로 일어나는지 알아내야 한다.매 반복마다 각 열의 맨 아래서부터 '.'가 아닐때까지, 방문하지 않은 뿌요에 대해서 BFS를 돌린다.BFS를 돌릴 때, 자신과 인접하고 같은 색의 뿌요인 경우
16236번: 아기 상어아기 상어는 자기보다 작거나 같은 물고기가 있는 인접한 칸으로만 이동이 가능하다.아기 상어는 자기보다 작은 물고기만 먹을 수 있다.아기 상어는 매 이동 시에 가장 가까운, 먹을 수 있는 물고기가 있는 곳을 향해 이동한다.3번에 해당하는 물고기가
2666번: 벽장문의 이동벽장이 있고, 2개의 벽장문이 존재한다. 벽장문은 인접한 벽장 앞에 벽장문이 없다면 밀어서 1칸 이동시킬 수 있다. 벽장들의 이용 순서가 주어질 때, 벽장 문의 이동 횟수의 최솟값을 구해야 한다.벽장의 갯수가 최대 20개입니다. 두 개의 벽장문
2117번: 원형 댄스N명의 사람이 원형으로 서 있다. 이 사람들은 순서대로 1 ~ N까지의 번호를 가지고 있는데, 자리를 최소한으로 바꿔서 N ~ 1까지 역순으로 나열되도록 해야 한다. 이 때, 자리 교환 횟수의 최솟값을 구해야 한다.N명의 사람들을 절반으로 나눠서,
백준 1726번: 로봇0과 1로 이루어진 공장이 주어진다. 로봇은 0으로만 된 지점만 이동할 수 있다. 이 공장에서 로봇이 이동하는데, 출발 위치와 로봇이 보고 있는 방향, 도착 위치와 로봇이 보고 있는 방향이 주어진다. 이 때 로봇에게 다음 2개의 명령을 내려 목표에
1091번: 카드 섞기0부터 N-1까지의 카드가 있고, 0, 1, 2 세 명의 플레어어가 있다. 이 카드를 섞을 것인데, 섞는 방법은 S라는 수열로 주어진다. 한번 섞으면 i번째 카드는 Si번째 위치로 이동하게 된다. 그리고 P라는 수열이 주어지는데, 이 수열은 i번
2685번: 님비합각 테스트케이스마다 다음 사항을 구현해야 한다.1\. X, Y 두 수를 B진법으로 나타낸다.2\. B진법으로 나타낸 두 수를 각 자리끼리 더하고, 각 자리를 B로 나눈다.3\. 이 수를 10진법으로 바꾼다.단순 구현 문제입니다. 10진수를 B진법으로
15645번: 내려가기 2N개의 줄이 있고, 각 줄에는 3칸이 있다. 각 칸에는 숫자가 있다. 아래 줄로 내려갈 때, 바로 아래와 인접한 칸으로 이동할 수 있다. 이때, 이동하면서 거쳐가는 칸에 적힌 수의 합의 최댓값과 최솟값을 구해야 한다.쉬운 DP 문제입니다. 첫번
2096번: 내려가기N개의 줄이 있고, 각 줄에는 3칸이 있다. 각 칸에는 숫자가 있다. 아래 줄로 내려갈 때, 바로 아래와 인접한 칸으로 이동할 수 있다. 이때, 이동하면서 거쳐가는 칸에 적힌 수의 합의 최댓값과 최솟값을 구해야 한다.내려가기 2와 문제 지문은 정확하
1034번: 램프탁자의 각 칸에 램프가 놓여 있다. 빈 칸은 존재하지 않고 램프는 켜져있거나 꺼져있다. 특정 열의 버튼을 누르면 해당 열의 모든 램프의 상태가 반전이 된다. 이때, 버튼을 K번 눌러서 모든 램프가 켜져 있는 행의 수의 최댓값을 구해야 한다.먼저 모든 행
16197번: 두 동전보드 상에 동전 두 개가 있다. 동전은 벽이 없는 칸으로 이동할 수 있다.이동하고자 하는 칸에 동전이 있어도 이동이 가능하다.이 동전을 상하좌우로 이동시켜 하나만 떨어뜨리기 위한 최소 횟수를 구해야 한다.10회를 넘어가면 -1을 출력한다.단순 구현
1303번: 전쟁 - 전투전쟁을 하는데, (서로 인접해 있는 병사들의 수)$$^2$$만큼 위력을 낼 수 있다. 이 때, 각 국가의 위력을 구해야 한다.단순 그래프 탐색 문제입니다. 방문하지 않은 정점에서 시작해서 몇 개의 정점까지 방문이 가능한지 세고, 제곱해서 각 국
1058번: 친구두 사람이 직접 친구 관계이거나, 한 사람을 건너 친구인 경우를 2-친구라고 한다. 2-친구가 가장 많은 사람의 2-친구 수를 구해야 한다.N은 최대 50정도밖에 되지 않습니다. 또 가중치가 없는 그래프입니다.여러 접근을 생각해 볼 수 있습니다.N번 B
2661번: 좋은수열1, 2, 3으로 이루어진 수열에 대해서, 인접한 길이가 같은 두 부분 수열이 같은 것이 없으면 좋은수열이라고 한다. 길이가 N인 좋은수열 중에 최솟값을 찾아야 한다.최솟값을 찾아야 하기 때문에, 1 ~ 3순으로 수를 추가합니다. 뒤에서부터 길이가
20440번: 🎵니가 싫어 싫어 너무 싫어 싫어 오지 마 내게 찝쩍대지마🎵 - 1 모기들이 방에 들어가고, 나가는 시간이 주어진다. 이때 모기들이 방 안에 가장 많은 시점의 모기 수와, 그 구간을 출력해야 한다. 그러한 구간이 여럿이라면 출발 지점이 가장 빠른 구간
2146번: 다리 만들기지도 상에 여러 섬들이 존재한다. 이 섬들 중 두 섬을 다리로 연결할 것이다. 이때, 다리 길이를 최소화해야 한다.DFS 또는 BFS로 모든 섬에 번호를 부여합니다. 방문하지 않은 육지인 점부터 방문 가능한 모든 점들에 같은 번호를 부여하면 됩니
11568번: 민균이의 계략민균이의 카드가 주어진다. 카드에 쓰인 숫자가 증가하도록, 최대의 카드를 뽑았을 때 이 카드의 수를 구해야 한다.가장 긴 증가하는 부분 수열(Longest Increasing Subsequence) 기본 문제와 사실상 거의 동일합니다. N이
12849번: 본대 산책8개의 정점으로 이루어진 그래프가 주어진다. 이 중 정보과학관에서 출발해서 d번 움직여서 다시 정보과학관으로 돌아올 수 있는 경로의 수를 구해야 한다.크기가 8인 배열을 선언하고, 정보과학관만 1로 초기화 시켜줍니다. 현재 정점과 인접한 정점들의
1248번: 맞춰봐\-10 ~ 10까지의 정수를 N개 나열한다. 그리고 해당 수열의 모든 구간합이 양수, 음수, 0 중에 어떤 것인지가 주어진다. 이때, 조건을 만족하는 N개의 수로 이루어진 수열을 하나 출력해야 한다.\-10 ~ 10까지의 숫자를 넣으면서 백트래킹을
1747번: 소수&팰린드롬N이 주어지면, N 이상의 팰린드롬인 소수 중에 가장 작은 수를 출력해야 한다.전처리로 에라토스테네스의 체를 이용하여 200만 근처까지의 소수를 모두 구해 놨습니다. 그 다음에 구한 소수 목록에서, 입력 받은 N과 lower_bound를 통해서
1446번: 지름길길이가 D 킬로미터인 고속도로를 지나는데, 고속도로에는 지름길들이 존재한다. 이 때, 고속도로를 지나기 위해 지나야 하는 거리의 최솟값을 구해야 한다.D는 최대 10000 정도입니다. 이 도로를 0부터 D까지 D+1개의 정점을 지닌 그래프로 정의할 수
9372번: 상근이의 여행N개의 국가를 모두 방문하기 위해 이용해야하는 항공편의 수를 구해야 한다. 항공편은 중복으로 사용해도 된다.유니온-파인드의 연습 문제로 좀 알려져 있는데, 사실은 그래프 이론을 어느정도 이해하고 있다면 단순하게 풀 수 있습니다.문제에서는 주어지
문제 링크 17396번: 백도어 문제 요약 > 무향 가중치 그래프에 N개의 정점이 존재하고, 일부 정점은 방문이 불가능하다. 0번 정점에서 N - 1번 정점으로 이동하기 위한 최단경로를 구해야 한다. 접근 방법 음의 가중치가 존재하지 않기 때문에 음수 사이클 생각없
1253번: 좋다N개의 수 중에 한 수를 자기 자신을 제외한 두 수의 합으로 나타낼 수 있으면 '좋다'고 한다. N개의 수가 주어지면 좋은 수가 몇 개인지 구해야 한다.일단 저는 unordered_set을 이용해서 풀었는데 잘 푼거 같지는 않습니다. C++로 푸신 다른
14248번: 점프 점프N개의 돌로 이루어진 돌다리가 있다. 이 돌다리의 각 돌에서는 돌에 쓰인 숫자만큼 좌, 우로 이동할 수 있다. 출발점이 주어질 때, 방문할 수 있는 돌의 수를 출력해야 한다.재방문 처리와 범위만 잘 해주면되는 기본적인 그래프 탐색 문제입니다.제
9007번: 카누 선수4개의 반에 속하는 학생들의 몸무게가 주어진다. 각 반에서 학생을 한 명씩 뽑아서 팀을 만들 때, 몸무게의 합이 K에 가장 근접하도록 만들어야 한다. 몸무게 합의 차가 동일한 경우(K가 300이고 합이 298, 302인 경우)에는 작은 쪽을 출력해
23757번: 아이들과 선물 상자N개의 선물상자가 있고, M명의 아이들이 있다. 아이들은 순서대로 선물이 가장 많이 들어있는 상자에서부터 원하는만큼 선물을 가져간다. 만약 상자에 선물이 부족하면 아이들은 실망하게 된다. 아이들이 선물을 가져갈때 실망하는 아이가 있는지
1990번: 소수인팰린드롬a부터 b까지의, 소수이면서 팰린드롬인 수를 모두 출력해야 한다.a부터 b까지의 수를 하나하나씩 팰린드롬인지 검사하고, 소수인지 검사하는 식으로 접근하면 바로 TLE를 받습니다. B의 최댓값이 1억임에도 불구하고 시간은 1초만 주어지기 때문입니
16918번: 봄버맨격자 상에 초기에 폭탄이 놓여 있다. 폭탄은 폭발하면 현재 칸과 상하좌우의 칸을 폭파시킨다. 폭파시키는 칸에 폭탄이 있다면 해당 폭탄은 연쇄적으로 폭발하지 않고 사라진다. 시작 후 1초 동안은 봄버맨은 아무것도 하지 않는다. 그리고 다음의 절차를 반
1713번: 후보 추천하기N개의 사진틀이 있고, 다음 규칙에 따라서 사진을 게시한다.학생들이 추천을 시작하기 전에 모든 사진틀은 비어있다.어떤 학생이 특정 학생을 추천하면, 추천받은 학생의 사진이 반드시 사진틀에 게시되어야 한다.비어있는 사진틀이 없는 경우에는 현재까지
17162번: 가희의 수열놀이 (Small)다음의 쿼리들을 수행해야 한다.1 num : 수열 arr의 맨 뒤에 num을 추가한다. ($$1$$ ≤ $$num$$ ≤ $$2^{31-1}$$)2 : 수열 arr의 맨 뒤에 있는 원소를 제거한다. 만약 arr이 비어있으면 무
14621번: 나만 안되는 연애여초 대학교와 남초 대학교 사이의 간선만 이용해서 모든 정점을 연결하는 부분 그래프를 만들어야 한다. 이때 필요한 간선들의 가중치 합의 최솟값을 구해야 한다.MST 기본 문제에서 두 가지가 더 추가되었습니다. 먼저 여초 대학교와 남초 대학
3980번: 선발 명단11명의 선수들이 있고, 11개의 포지션이 있다. 각 선수들이 어떤 포지션에서 뛰는지에 따라서 능력치가 달라진다. 각 선수와 포지션에 대한 능력치가 모두 주어진다. 만약 선수가 특정 포지션에서 뛸 수 없다면 능력치가 0으로 주어진다. 선수별로 뛸
1985번: 디지털 친구두 숫자의 각 자릿수에 속해 있는 숫자들의 종류가 모두 같으면 친구라고 한다.만약 두 수 중 하나에게 인접한 두 자리의 숫자를 증가, 감소시켜서 친구가 되면 거의 친구라고 한다. 단, 증가와 감소는 한번씩 사용해야하며, 맨 앞의 수는 0이 될 수
16506번: CPU주어진 어셈블리어 코드를 표를 참조해 기계어 코드로 바꿔야 한다.단순 구현 문제입니다. 문자열 처리와 10진수를 2진수로 변환하는 것에만 주의를 하면 되는 간단한 구현 문제였습니다.
1672번: DNA 해독염기서열을 주어진 표를 이용해서 해독해야 한다. 염기서열의 마지막 두 문자를 각각 표의 행과 열로 삼아서 하나의 문자를 찾아서 대치시켜 최종적으로 하나의 문자로 만들어야 한다.표에서 행과 열은 아데닌(A), 구아닌(G), 사이토신(C), 티민(T
2754번: 학점계산문자로 주어진 학점을 숫자로 변환시켜 출력해야 한다.F는 A, B, C, D와 연속되지 않기 때문에 별도로 처리를 해줍니다.A, B, C, D 학점의 경우 1학점씩 차이가 나기 때문에 아스키 코드 상의 차를 이용하면 편리하게 코드를 짤 수 있습니다.
2935번: 소음10의 거듭제꼴 형태의 두 정수에 대한 곱셈 또는 덧셈을 수행해야 한다.두 수가 모두 10의 거듭제곱이기 때문에 어렵지 않게 풀 수 있습니다.덧셈의 경우 두 수의 길이가 같다면 가장 왼쪽의 수를 2로 바꿔주면 됩니다. 만약 두 수의 길이가 다르다면, 더
20944번: 팰린드롬 척화비길이가 N인 팰린드롬이면서 수미상관인 문자열을 하나 출력해야 한다.어려운 구성적 문제처럼 보이지만 조금만 생각하면 쉽게 답을 생각해 낼 수 있습니다. 단일 문자로 이루어진 문자열은 자연스레 팰린드롬임고 동시에 수미상관이 됩니다. 이를 이용해
1718번: 암호평문을 Vigenere cipher를 통해서 암호화해야 한다.평문과 key의 문자 사이의 차를 이용해서 이동시키는 방식으로 암호화해 출력해야 한다.반복문을 통해서 평문의 처음부터 끝까지 순서대로 암호화를 해줍니다. key는 반복적으로 이용이 되는데, k
백준 1141번: 접두사주어진 문자열들 중에 접두사 관계가 성립하지 않는 최대 부분 집합의 크기를 구해야한다.문자열을 정렬합니다. 그리고 순서대로, 아래의 문자열들과 비교하면서 현재 문자열이 다른 문자열의 접두사가 될 수 있는지 확인합니다. 만약 그러한 경우가 있다면
8911번: 거북이거북이가 하는 일련의 동작들이 주어진다. 거북이는 앞뒤로 한칸 이동하거나 왼쪽 또는 오른쪽으로 90도 회전이 가능하다. 이때 거북이가 이동한 경로들을 모두 덮는 가장 작은 직사각형의 넓이를 구해야 한다.최소의 직사각형은 결국 거북이의 위치를 행과 열로
6198번: 옥상 정원 꾸미기N개의 빌딩이 있고 각 빌딩의 옥상에는 관리인이 있다. 관리인들은 오른쪽만을 보고 있으며, 자신이 보고 있는 건물보다 높이가 높거나 같은 빌딩이 있으면 그 다음 건물부터는 보지 못한다. 각 건물의 관리인들이 볼 수 있는 건물 수의 합을 구해
백준 23817번: 포항항출발점에서 5개의 식당을 방문하는 최소 비용을 찾아야 한다.문제 난이도는 과평가 된 부분이 있다고 봅니다. 그럼에도 저는 실수를 해서 조금 많이 틀렸습니다. 먼저 출발점과 모든 식당들 사이의 거리를 BFS를 통해 구합니다. 그 다음에는 백트래킹
23254번: 나는 기말고사형 인간이야시험 공부를 하는데, 각 과목당 현재 시험을 봤을 때 받을 수 있는 점수, 1시간 공부했을 때 증가하는 점수가 주어진다. 이때 받을 수 있는 점수의 최댓값을 구해야 한다.그리디하게 접근하였습니다. 점수가 최대가 되야하기 때문에, 매
23350번: K 물류창고물류창고에 물건이 컨베이어 벨트를 타고 들어온다. 물건은 우선순위와 무게를 가지고 있는데, 높은 우선순위의 물건이 위에 오도록 물건을 쌓아야 한다. 또, 우선순위가 동일한 물건들 사이에서는 무게가 무거운 물건이 아래에 오도록 쌓아야 한다. 물건
16987번: 계란으로 계란치기N개의 계란이 있고, 각 계란은 내구도와 무게가 있다. 계란 두 개가 충돌하면 각 계란의 내구도는 상대 계란의 무게만큼 감소하게 된다. 아래와 같은 절차로 계란들을 충돌시켰을 때, 깨지는 최대 계란 수를 구해야 한다.1\. 가장 왼쪽의 계
5577번: RBY팡!3가지 색을 가진 공들이 주어진다. 같은 색의 공 4개가 연속해서 있다면 그 공들은 폭발하게 된다. N개의 공 중에서 하나의 색깔을 바꿨을 때 연쇄적으로 폭발이 일어날 수 있다. 이때 남을 수 있는 공의 갯수의 최솟값을 구해야 한다.기본적인 접근
24462번: 일어나... 코딩해야지...알람이 울리기 시작하는 시간과 울리는 주기가 주어진다. 알람 2개를 골랐을 때, 같은 시간에 알람이 울리면 1회 울리는 것으로 친다. 이때, 알람이 울리는 최대 횟수를 구해야한다. 알람이 시작하는 시간은 알람이 울리는 주기로 나
23843번: 콘센트전자기기들을 충전하는데 걸리는 시간과 콘센트의 수가 주어진다. 전자기기의 충전 시간은 2의 거듭제곱꼴이다. 전자기기들을 모두 충전하는데 걸리는 시간의 최솟값을 구해야 한다.직감에 의거해 그리디 알고리즘으로 풀었지만 증명은 따로 하지 않았습니다.입력을
24391번: 귀찮은 해강이특정한 건물들 사이에는 통로가 있다. 건물들을 이동할 때, 최대한 통로를 이용해서 실내로 이동을 하고자 한다. 이때, 불가피하게 건물을 나와서 이동해야하는 횟수를 출력해야 한다문제를 읽자마자 유니온파인드를 사용하면 된다고 생각했습니다. 유니온
21758번: 꿀 따기N개의 장소가 있다. 이 중 한 곳에는 벌통이, 그리고 추가로 두 곳에는 벌이 존재한다. 벌은 벌통으로 이동하면서 경로상에 있는 꿀들을 모두 채집해간다. 단, 벌이 출발한 곳들의 꿀은 채집하지 않는다. 이때, 얻을 수 있는 꿀의 최댓값을 구해야 한
24390번: 또 전자레인지야?10초, 1분, 10분의 조리시간 버튼을 가진 전자레인지가 존재한다. 추가로 조리시작 버튼이 존재하는데, 조리시작 버튼은 현재 입력된 시간만큼 음식을 조리한다. 단, 조리시간이 0초이거나 이미 조리 중이라면 30초가 추가된다.이 전자레인지
22945번: 팀 빌딩개발자 두 명이 팀을 이뤄야 하는데, 이 팀의 능력치는(개발자 A와 개발자 B 사이에 존재하는 다른 개발자 수) × min(개발자 A의 능력치, 개발자 B의 능력치)를 통해서 구할 수 있다. 구성할 수 있는 팀의 최대 능력치를 구해야 한다.일단 최
19699번: 소-난다!N마리의 소 중에서 M마리의 소를 골랐을 때, 그 몸무게의 합이 소수가 되는 경우, 몸무게를 오름차순으로 출력해야 한다.전형적인 백트래킹 문제와 전형적인 에라토스테네스의 체 문제를 합친 문제였습니다. 소가 최대 9마리고, 각 소의 몸무게의 최대값
1368번: 물대기N개의 논에 물을 대는데, 물을 댈 때는 직접 우물을 파거나, 이미 물을 대는 다른 논에서 물을 끌어올 수 있다. 이때 모든 논에 물을 대는 최소 비용을 구해야 한다.우물을 하나의 가상의 정점으로 생각하면 됩니다. 그래서 각 논에서 우물을 파는 비용을
23247번: Ten땅을 직사각형으로 묶어서, 그 합이 10이 되는 경우의 수를 출력해야 한다.21년도 ICPC 인예 문제입니다. 제가 제일 쉬운 I번을 풀고 나서 바로 잡았던 문제였는데, 저는 풀이만 생각하고 구현은 다른 팀원이 했었습니다. 그래서 안 푼 상태로 방치
13414번: 수강신청수강신청을 하는데, 빨리 누른 학생 순으로 수강이 성공된다. 단, 대기열에 들어온 상태에서 다시 수강신청을 누르는 경우, 대기열의 맨 뒤로 밀려나게 된다. 버튼을 누른는 순서가 주어질 때, 수강에 성공하는 학생들을 순서대로 출력해야 한다.입력이 5
16954번: 움직이는 미로 탈출욱제가 왼쪽 아래 칸에서 오른쪽 위 칸으로 이동한다. 욱제가 이동한 뒤에는 체스 칸의 모든 벽이 아래로 한 칸씩 이동한다. 이때, 욱제가 오른쪽 위 칸으로 이동할 수 있는지 알아내야 한다. 욱제는 인접한 모든 한 칸으로 이동하거나, 현재
2615번: 오목오목판이 주어지면 누가 이겼는지 출력해야 한다. 비기는 경우는 주어지지 않으며, 승패가 결정되지 않은 경우는 존재한다. 만약 누군가 이긴 상태라면, 가장 왼쪽 바둑알의 위치를 출력해야 한다. 단, 위아래로 오목이 완성된다면 가장 위쪽 바둑알의 위치를 출
2211번: 네트워크 복구1번 컴퓨터와 모든 정점이 최소 갯수의 간선으로 연결된 그래프의 간선을 모두 출력해야 한다. 이때, 1번 정점에서 각 정점으로 가는 경로의 길이는 기존 그래프보다 길어선 안된다.그래프의 N개의 정점을 최소 간선으로 연결하기 위해서는 트리 형태여
5904번: Moo 게임Moo 수열에서, S(0)는 "moo"이고, S(k)는 S(k-1) + ("m" + "o" \* (k+2)) + S(k-1)을 통해서 만들 수 있다. 이때 Moo 수열의 N번째 글자를 구하는 프로그램을 작성해야 한다.초기 접근 시에는 Moo 수
1527번: 금민수의 개수a 이상, b 이하의 4와 7로만 이루어진 수의 갯수를 구해야 한다.재귀호출을 통해서 문자열에 '4', '7'을 추가합니다. 문자열을 정수형으로 변환해서, a 이상, b 이하인지 확인하면 됩니다.
14725번: 개미굴로봇이 개미가 굴을 타고 들어가면서 찾게 된 먹이 정보가 주어진다. 이 먹이정보를 바탕으로 개미굴의 형태를 출력해야 한다.백준 단계별로 풀어보기의 '문자열 알고리즘 1'에서 KMP만 공부하고 문자열은 더 안 보고 있었는데, 간만에 새로운 걸 배워봤습
5052번: 전화번호 목록주어진 전화 번호 중에 어떠한 전화번호가 다른 전화번호의 접두어가 되는 경우가 있는지 판별해야 한다.트라이를 이용해서 풀었습니다. 먼저 입력으로 주어진 전화번호들을 모두 트라이에 집어 넣습니다. 그 다음에 각 전화번호로 순서대로 트라이에서 탐색
5052번: 전화번호 목록N개의 문자열이 주어지고 M개의 문자열이 주어진다. M개의 문자열 중에서 집합 S에 포함되어 있는 문자열 중 적어도 하나의 접두사인 것의 개수를 구해야 한다.쉬운 풀이가 있지만, 트라이 연습삼아서 트라이로 접근해봤습니다. N개의 문자열을 모두
23743번: 방탈출방을 탈출해야 하는데, 워프와 비상탈출구를 설치할 수 있다. 워프는 각 방 사이를 연결할 수 있고, 비상탈출구는 출구와 방을 직접 연결한다. 모든 방의 사람이 탈출할 수 있도록 비상탈출구와 워프를 설치하는 최소비용을 구해야 한다.물대기 문제와 완전히
16903번: 수열과 쿼리 200이 하나 포함된 배열 A에 대해서 다음의 쿼리들을 구현해야 한다.1 x: A에 x를 추가한다.2 x: A에서 x를 제거한다. A에 x가 두 개 이상 있는 경우에는 하나만 삭제한다. 항상 A에 x가 있는 쿼리만 주어진다.3 x: A에 포함
17968번: Fire on Field수열 A의 $$A0$$와 $$A1$$은 1이다. i가 2 이상일 때, Ai는 다음과 같이 구할 수 있다.$$k > 0$$, $$i - 2k \\geq 0$$인 모든 정수 k에 대해서$$Ai - Ai - k \\neq Ai -k -
13565번: 침투섬유 물질의 바깥쪽에서 흘려 준 전류가 안쪽까지 침투될 수 있는지 아닌지 판단하는 프로그램을 작성해야 한다. 섬유 물질은 격자로 이루어져 있는데, 격자의 색이 검은색이면 전류를 차단하는 물질이고, 흰색이면 전류가 통하는 물질이다.간단한 그래프 탐색 문
8462번: 배열의 힘배열의 부분 배열 안의 자연수 s가 있을 때, $$K_s$$는 이 부분 배열 안의 s의 갯수이다. 부분 배열의 힘이란, $$K_s \\times K_s \\times s$$를 의미한다. 배열의 부분 배열의 범위가 주어지면, 각 부분 배열의 힘을 구
4343번: Arctic NetworkP개의 전진기지들을 모두 연결해야 한다. 이때, 두 전진기지가 통신하기 위해서는, 전진기지 사이의 거리만큼의 힘을 필요로 한다. 이때, 필요한 힘의 최솟값을 구해야 한다.또, S개의 전진기지에 위성 채널을 설치할 수 있는데, 위성
9420번: 소수상근수어떤 수의 각 자릿수의 제곱 수를 더해서 나온 수를 구하는 과정을 반복했을 때, 1이 되면 이 수를 상근수라고 한다. N이 주어지면 N 이하의 소수인 상근수를 모두 구해야 한다.에라토스테네스의 체를 이용해서 전처리로 소수를 모두 구해줍니다.그리고
2287번: 모노디지털 표현K를 여러 개 이용하거나 사칙연산을 이용해 자연수 X를 수식으로 나타낸 것을 X의 K-표현이라고 한다. 입력 N이 주어지면, N의 가장 짧은 K 표현의 길이를 구해야 한다. 단, 길이가 8을 넘어가면 NO를 출력한다.처음에는 길이를 1씩 늘려
21318번: 피아노 체조악보의 x번부터 y번까지 연주를 한다. 이때, i번 악보의 난이도가 i + 1번 악보의 난이도보다 높다면 실수를 하게 된다. 연주하는 악보들 중 마지막 악보를 연주할 때는 실수를 하지 않는다. 구간이 주어지면 각 구간을 연주할때 실술를 몇번 하
23294번: 웹 브라우저 1웹 브라우저가 존재하는데, 이 웹 브라우저는 앞으로 가기, 뒤로 가기, 웹 페이지 접속, 압축 기능이 존재한다.1\. 뒤로 가기 : 뒤로 가기 공간이 비어있지 않다면, 현재 페이지를 앞으로 가기 공간에 저장한다. 뒤로 가기 공간의 마지막 데
22254번: 공정 컨설턴트 호석N개의 선물을 생산해야 한다. 각 선물은 여러 개의 생산라인에서 병렬 생산이 가능하다. 각 선물의 차례가 오면, 생산이 가장 빨리 끝나는 생산라인에 할당된다. 이때 모든 선물을 X시간 이내에 생산하기 위한 최소 생산라인의 수를 구해야 한
5464번: 주차장N개의 주차 공간이 있는 주차장에 M대의 차량이 들어오고 나간다. 차량은 현재 주차가 가능한 공간 중 가장 번호가 빠른 주차 공간에 주차를 한다. 주차 요금은 차량의 무게와 주차 공간의 가격의 곱만큼 발생하게 된다. 차량이 들어왔을 때, 주차 공간이
23323번: 황소 다마고치1일이 지날 때마다 체력이 절반씩 출어드는 황소가 있다. 이 황소에게 먹이를 주면 그만큼 체력이 증가한다. 먹이는 현재 가지고 있는 먹이보다 작거나 같은 양을 줄 수 있고, 먹이를 주면 그만큼 가지고 있는 먹이가 줄어든다. 황소의 체력과 먹이
18188번: 다오의 데이트다오가 디지니를 만나러 가는데, 마리드가 방해를 한다. 마리드의 방해에 의해 다오는 총 N번 움직일 수 있으며, 각 움직이는 단계에서 마리드가 지정한 두 방향으로만 이동할 수 있다. 다오가 디지니를 만날 수 있는지 확인해야 한다. 만약 만날
16457번: 단풍잎 이야기메이플스토리를 하는데, $$2\\times N$$개의 스킬이 존재한다. 키보드의 키가 $$N$$개가 있고, 각 키에는 하나의 스킬을 매핑할 수 있다. $$M$$개의 퀘스트가 있고, 각 퀘스트에서는 $$K$$개의 스킬을 써야 한다. 키와 스킬을
17391번: 무한부스터맵의 모든 칸에는 부스터가 존재하고, 각 칸에 멈출때마다 부스터를 획득할 수 있다. 각 칸에서 부스터를 획득하면, 가지고 있던 부스터 갯수 이하만큼 오른쪽 또는 아래으로 이동할 수 있다. 단, 한 방향으로 이동하면 다른 방향은 선택할 수 없고,
20165번: 인내의 도미노 장인 호석높이가 존재하는 도미노가 있다. 이 도미노를 특정한 방향으로 쓰러트리면, 그 방향의 (높이 - 1) 칸의 도미노가 연쇄적으로 쓰러진다.두 사람 중 한 사람이 R턴 동안 도미노를 쓰러트리고, 나머지 한 사람이 하나를 세우는 걸 번갈아
16678번: 모독프로젝트 Defile을 실시하면 다음의 절차가 실행된다. (1) 모든 국회의원을 모독해서 각각의 명예 점수를 1씩 감소시킨다. (2) (1)로 인해 1명이라도 국회의원에서 박탈당한 사람이 발생했다면 국민들의 분노를 이용해 (1)로 돌아간다. (3)에
17182번: 우주 탐사선우주 탐사선 ana호가 행성을 탐사한다. 행성들 사이의 거리가 주어질 때, k번 행성에서 출발해 모든 행성을 탐사하기 위한 최소 이동 거리를 구해야 한다.모든 정점을 방문하는 최소 비용을 구하는 것이기 때문에, 비트마스킹으로 풀기 좋은 문제입니
2780번: 비밀번호키패드가 주어지고, 비밀번호를 누르는데, 한 버튼을 누르면 그 다음으로는 인접한 버튼만 누를 수 있다. 만들 수 있는 N자리 비밀번호의 수를 구해야 한다.dp10 배열을 만들어 두고, dp0부터 dp9까지를 모두 1로 초기화 해둡니다.0부터 9까지
16120번: PPAP문자열 P에서 시작해서 문자열 내의 어떠한 P를 PPAP로 반복적으로 바꿔서 만들 수 있는 문자열을 PPAP 문자열이라고 한다. 어떠한 문자열이 주어지면 이 문자열이 PPAP 문자열인지 판별해야 한다.문자열을 입력 받은 뒤에, 각 문자를 순서대로
12757번: 전설의 JBNU다음의 쿼리를 수행하는 데이터베이스를 구현해야 한다.1 Key Value : 해당 Key와 Value를 가진 데이터를 추가한다. Key가 이미 존재하는 입력은 주어지지 않는다.2 Key Value : 해당 Key로 검색된 데이터를 Value
18115번: 카드 놓기1부터 N까지의 카드가 섞어져 있다. 해당 카드들에 대해 다음의 동작들을 수행할 수 있다.1\. 제일 위의 카드 1장을 바닥에 내려놓는다.2\. 위에서 두 번째 카드를 바닥에 내려놓는다. 카드가 2장 이상일 때만 쓸 수 있다.3\. 제일 밑에 있
1826번: 연료 채우기L에 위치한 마을까지 가는데, 연료가 1km당 1L씩 소모된다. 트럭이 출발할때는 P만큼의 연료가 들어있다. 마을로 가는 경로 중간중간에 주유소가 위치한다. 주유소의 위치와 주유소에서 채울 수 있는 연료가 주어질 때, 마을까지 도착하는데 주유소에
13701번: 중복 제거입력 받은 수들을 순서대로 출력을 해야 한다. 단, 앞에서 출력한 수가 다시 입력된다면 그 수는 제거해야 한다.C++ 기준, 메모리 제한이 8MB로 빡빡합니다. 풀이 방법은 간단한데, 비트를 이용하는 방법입니다. 범위를 모두 커버하는 길이의 비트
18119번: 단어 암기N개의 영단어가 입력으로 주어진다. 초기에는 모든 알파벳을 알고 있는 상태이다. 이때 다음의 쿼리를 수행할때마다 알고 있는 알파벳으로 표현할 수 있는 단어의 수를 출력해야 한다.1 x : 알파벳 x를 잊는다.2 x : 알파벳 x를 기억해 낸다.비
2207번: 가위바위보학생들은 원장 선생님이 가위바위보를 할때, 몇번째에 무엇을 낼지 2개의 선택을 할 수 있다. 이 두 선택 중 하나라도 맞으면 학생은 살아남게 된다. 원장 선생님이 주먹과 가위만 낸다고 할때, 모든 학생들이 살아남을 수 있는지 알아내야 한다.학생들은
1162번: 도로포장1번 정점에서 N번 정점으로 이동하는데, 최대 K번 도로를 포장할 수 있다. 포장된 도로를 이동하는데는 시간이 0만큼 걸린다. 1번 정점에서 N번 정점으로 이동하는데 걸리는 시간의 최솟값을 구해야 한다.거리를 저장하는 dist배열을 2차원으로 선언해
1963번: 소수 경로한 네 자리 소수에서 다른 네 자리 소수로 이동을 해야 한다. 이동을 할 때는 네 자리 수의 각 자리에서 숫자를 하나씩 바꿔야 하는데, 이동 과정에 만나는 수들도 모두 소수이며 네 자리 수가 되어야 한다. 이 때, 다른 네 자리 소수로 이동하기 위
6087번: 레이저 통신c로 표시된 두 칸을 레이저로 연결시키고자 한다. 중간 중간에 거울을 놓아 레이저가 가는 방향을 90도 회전시킬 수 있을 때, 필요한 거울의 최소 갯수를 구해야 한다.다익스트라 알고리즘으로 풀 수 있습니다. 방향을 90도 회전할 때는 가중치를 1
13418번: 학교 탐방하기학생들이 학교 탐방을 하는데, 경로 상에 오르막길이 있다면, (오르막길 사용 횟수)$$^2$$ 만큼 피로도가 쌓이게 된다. 단, 한 번 이용한 오르막길을 다시 방문한다고 해도 횟수는 증가하지 않는다.이때, 오르막길을 최대한 많이 이용하는 경로
3066번: 브리징 시그널두 블록 사이의 포트들을 연결하고자 한다. 이때, 서로 연결되어야 하는 포트들이 주어진다. 이 포트들을 연결할 때, 서로 교차되지 않고 최대로 연결될 수 있는 시그널의 수를 구해야 한다.전깃줄 문제들이랑 아예 똑같은 쉬운 문제입니다. 위에서부터
3865번: 학회원학회에 속한 사람들이 주어진다. 학회에는 다른 학회가 속해 있을 수도 있다. 이때, 첫번째 학회에 속한 학회원의 수를 구해야 한다.학회와 학회원을 정점으로 봤을 때, 한 학회에 속한 학회와 학회원은 간선으로 연결되었다고 볼 수 있습니다.입력된 문자열을
14452번: Cow Dance Show여러 소들이 동시에 무대에서 춤을 추는데, 소들에게는 무대에 오르는 순서가 정해져 있다. 각 소들이 춤을 추는 시간이 주어질 때, 모든 소가 춤을 T 시간 안에 마칠 수 있는, 무대 크기의 최솟값을 구해야 한다.매개변수 탐색으로
14907번: 프로젝트 스케줄링PERT차트에 따라서 작업을 수행한다. PERT 차트에서는 선수작업이 모두 끝나야 다음 작업을 진행할 수 있다. 모든 작업을 완료하는데 걸리는 시간을 구해야 한다.소프트웨어를 전공하는 분이라면 한번쯤은 들어보셨을 법한 PERT 차트에 대한
25195번: Yes or yes투어리스트 곰곰이가 여행을 떠나는데, 중간중간에 팬클럽 곰곰이가 잠복해 있다. 팬클럽 곰곰이를 만나지 않고 여행을 할 수 있는 경로가 있는지 확인해야 한다.팬클럽 곰곰이가 있는 정점들을 visited 배열에 표시해두고 기존의 BFS와 동
25306번: 연속 XORA, B가 주어질 때, A에서 B까지 XOR한 값을 구해야 한다.A와 B는 최대 $$10^{18}$$까지이기 때문에 직접 XOR을 계산하면 TLE를 받을 수밖에 없습니다.문제를 보자마자 든 생각은, A에서 B까지의 수들을 XOR한 값은 $$B
7420번: 맹독방벽자국 건물들의 좌표가 주어질 때, 자국민들을 보호하는 방벽을 지으려고 한다. 방벽은 자국의 모든 건물들로부터 L만큼 떨어져 있어야 한다. 이때, 방벽의 최소 길이를 구해야 한다.자그마치 13개월 전에 풀다가 WA를 받고 까먹었다가 오늘 다시 잡은 문
2205번: 저울 추 만들기질량이 1부터 n까지인, 총 n개의 납덩이가 있고, 주석덩어리도 동일하게 존재한다. 납덩이와 주석덩어리를 하나씩 합쳐 저울 추를 만들 때, 저울 추가 모두 2의 거듭제곱꼴이 되도록 출력해야 한다.규칙을 찾아보기 위해 n이 1일 때부터 한번 차
12931번: 두 배 더하기배열 A를 배열 B로 바꾸려고 하는데, 두가지 연산을 할 수 있다.1\. A의 값 하나를 1 증가시킨다.2\. A의 모든 값을 두 배 시킨다.이 때, A를 B로 바꾸기 위한 최소 연산 횟수를 구해야 한다.A를 B로 바꾸는 조건을 가진 문제들
21870번: 시철이가 사랑한 GCD배열 S가 주어질 때, 배열의 아름다움을 측정해야 한다. 아름다움의 측정 방법은 다음과 같다.1\. 배열 S의 왼쪽부터 $$floor(|S|/2)$$개의 원소를 선택하거나 오른쪽부터 $$ceil(|S|/2)$$개의 원소를 선택한다
25395번: 커넥티드 카 실험커넥티드 카들이 일직선 상에 놓여 있다. 커넥티드 카가 이동해서 다른 커넥티드 카가 있는 곳에 도착하면, 둘은 연결되게 된다. 커넥티드 카는 거리 1을 이동하는 데에 연료 1을 소비한다.커넥티드 카들의 위치, 연료, 시작하는 카의 번호가
25376번: 이상한 스위치스위치들이 놓여 있을 때, 꺼져 있는 스위치만 켜서 모든 스위치를 켜져 있는 상태로 만들어야 한다. 특정한 스위치를 켜게 된다면 그 스위치의 영향을 받는 모든 스위치의 상태가 반전되게 된다. 스위치가 모두 켜져 있도록 만들기 위해서 스위치를
18085번: Firetrucks Are RedN명의 사람들을 설명하는 숫자들이 주어질 때, 모든 사람들이 직간접적으로 해당 숫자를 통해서 연결되어야 한다. 만약 이것이 가능하다면 N - 1 줄에 거쳐서 이를 출력하고, 그렇지 않다면 impossible을 출력해야 한다
25587번: 배수로N개의 도시에 대해서 각각 배수로 용량과 강수량이 주어진다. 강수량이 배수량보다 크다면 홍수가 발생하게 된다.만약, 도시 사이에 배수로를 놓으면, 도시는 강수량과 배수량은 합쳐져서, 연결된 모든 도시에 홍수가 나거나, 나지 않게 된다.이제, 다음 두
25502번: 등차수열? 등비수열?수열이 주어지고, i번째 수를 x로 바꾸는 쿼리들이 주어진다. 각 쿼리를 수행할 때마다 해당 수열이 등차수열인지, 등비수열인지 또는 둘 다 아닌지 출력해야 한다.매우 간단한 문제입니다.N, M이 모두 최대 30만이기 때문에 나이브하게
길이 N의 배열 A와 빈 배열 B, C로 트리플 멕스 게임을 진행한다. 플레이어는 다음의 두 행동을 할 수 있다.1\. A의 subsequence의 mex를 B의 맨 뒤에 적는다.2\. B의 subarray의 mex를 C의 맨 뒤에 적는다.이때 트리플 멕스 게임의 점수
16724번: 피리 부는 사나이피리를 불면 모든 사람들이 현재 칸에 적혀진 방향으로 이동하게 된다. 이러한 이동을 멈추기 위해서 안전 장소를 설치하고자 한다. 지도 위의 어떤 구역에 있더라도 안전 장소로 들어갈 수 있도록 하기 위한 최소 안전 장소의 수를 구해야 한다.
16934번: 게임 닉네임어떤 게임에서 유저의 닉네임을 기반으로 내부적으로 저장할 별칭을 만든다. 별칭을 생성하는 규칙은 다음과 같다.1\. 유저 닉네임의 접두사 중 가장 짧은 것을 사용하되, 이 접두사는 이전에 가입한 다른 닉네임의 접두사가 되면 안된다.2\. 만약
22860번: 폴더 정리 (small)폴더와 폴더에 속해 있는 폴더 또는 파일 쌍이 주어진다. 이때 각 폴더의 경로를 쿼리로 받으면, 하위 경로 상의 파일 종류의 수, 파일의 수를 출력해야 한다.골드3치고는 너무 쉬운 문제라고 생각합니다.처음에는 깔끔하게 전처리로 값을