설명
알아둘 것.
solved.ac 기준 브론즈 5단계
solved.ac 기준 브론즈 5단계
solved.ac 기준 브론즈 5 단계
solved.ac 기준 브론즈 4단계
solved.ac 기준 브론즈 4단계 문제
solved.ac 기준 브론즈 4단계 문제
solved.ac 기준 브론즈 4단계 문제
*solved.ac 기준 브론즈 4단계 문제
solved.ac 기준 브론즈 3단계 문제
solved.ac 기준 브론즈 4단계 문제
*solved.ac 기준 브론즈 3단계 문제
solved.ac 기준 브론즈 3단계 문제
solved.ac 기준 브론즈 3단계 문제
solved.ac 기준 브론즈 3단계 문제
solved.ac기준 브론즈 2단계 문제
\*solved.ac 기준 브론즈 2단계 문제
solved.ac 기준 브론즈 2단계 문제
solved.ac 기준 브론즈 2단계 문제
\*solved.ac 기준 브론즈 2단계 문제
* solved.ac 기준 브론즈 1단계 문제
\*solved.ac 기준 브론즈1단계 문제
\*solved.ac 기준 브론즈 1단계 문제
\*solved.ac 기준 브론즈 1단계 문제
\*solved.ac 기준 실버 5단계 문제
\*solved.ac 기준 실버 5단계 문제
\*solved.ac 기준 실버 5단계 문제
solved.ac기준 브론즈 5단계 문제
\*solved.ac 기준 실버5단계 문제
\*실버 1단계 문제
\*실버 5단계 문제
실버 4단계 문제
실버 5단계 문제
실버 5단계 문제
실버 5단계 문제
\*실버 4단계 문제
실버 4단계 문제
실버 4단계 문제
\*실버 5단계 문제
실버 5단계 문제
실버 3단계 문제
실버 3단계 문제
실버 3단계 문제
실버 3단계 문제
실버 3단계 문제
실버 3단계 문제
실버 3단계 문제
실버 2단계 문제
실버 5단계 문제
실버 3단계 문제
실버 2단계 문제
실버 3단계 문제
실버 3단계 문제
실버 3단계 문제
실버 3단계 문제
실버 4단계 문제
실버 3단계 문제
실버 4단계 문제
실버 4단계 문제
실버 4단계 문제
\*실버 4단계 문제
브론즈 1단계 문제
브론즈 1단계 문제
실버 5단계 문제
실버 5단계 문제
실버 5단계 문제
실버 5단계 문제
실버 4단계 문제
실버 4단계 문제
실버 4단계 문제
실버 4단계 문제
실버 4단계 문제
실버 4단계 문제
실버 5단계 문제
실버 3단계 문제
실버 5단계 문제
실버 5단계 문제
실버 4단계 문제
실버 3단계 문제
실버 2단계 문제
실버 4단계 문제
실버 4단계 문제
실버 4단계 문제
실버 4단계 문제
실버 3단계 문제
실버 5단계 문제
실버 4단계 문제
실버 4단계 문제
브론즈 3단계 문제
문제 풀이)
실버 5단계 문제
실버 5단계 문제
실버 4단계 문제
자바의 배열
실버 5단계 문제)
실버 4단계 문제
실버 1단계 문제
실버 4단계 문제
골드 3단계 문제
골드 3단계 문제
실버 5단계
브론즈 5단계 문제
실버 5단계 문제
골드 3단계 문제
실버 3단계 문제
실버 2단계 문제
실버 2단계 문제
실버 1단계 문제
실버 1단계 문제
실버 1단계 문제
실버 1단계 문제
실버 2단계 문제
실버 1단계 문제
실버 3단계 문제
실버 4단계 문제
풀이) 미로에서 인접한 칸으로만 이동하니 BFS를 사용한다. 입력 크기가 100이하라서 인접 행렬을 통해 그래프를 표현한다. 인접 행렬은 시간 복잡도가 O(n^2) 인접 리스트는 시간 복잡도가 O(n+e) 배열에서 동서남북 움직이는 법 배열에선 -x가 위 +x가 아래 -y가 좌 +y가 우다. 상 하 좌 우 dx = {-1, 1, 0, 0...
실버 4단계 문제
실버 1단계 문제
실버 2단계 문제
에라토스테네스의 체
내 풀이) 아스키 코드를 이용해 이름의 첫 글자가 몇 번 나왔는지를 체크하고 배열에 저장한다. 입력값이 작아 시간복잡도가 커도 상관없다. 내 코드)
BFS
풀이) 예시를 봤을 때 0, 1, 2... 7의 집합을 생성하고, 8번 연산을 한다는 뜻. 0 1 3 이란 1과 3을 합친다는 것이고 1 1 7 이란 1과 7의 대표값이 같은지 확인한다는 것이다 즉 union find 연산으로 계산할 수 있다. 내 코드)
풀이) 위상 정렬로 풀 수 있다. 그래프를 인접리스트로 받아 해석하며, 큐를 생성해 풀 수 있다. 내 코드)
풀이) 왼쪽 아래에서 위로 올라가는 형태 왼쪽 위에서 아래로 내려가는 형태 오른쪽 아래에서 위로 올라가는 형태 오른쪽 위에서 아래로 내려가는 형태 행만 움직이는 형태 열만 움직이는 형태 이 6가지 유형을 만족하는 모든 수를 찾기 위해 브루스포스 방식으로 코드를 짠다. 코드)
풀이) 피보나치 수에서 0과 1이 호출되는 횟수를 구하기 위해 이 과정을 DP로 풀어내면 된다. 즉, 한 번 탐색할 때마다 해당 N의 0과 1의 값을 저장해두고, 이후 다음 탐색에서 이미 탐색했던 노드일 경우 해당 배열값을 쓰면 된다. N에 대한 0호출 횟수 = N-1의 1 호출 횟수 N에 대한 1 호출 횟수 = N-1의 0 호출 횟수 + N-1의 1 호출...
풀이)남학생이면 스위치 번호의 배수 스위치의 상태를 전부 바꿔주고,여학생이면 스위치의 대칭여부를 비교해가며 상태를 바꿔준다.내 코드)
풀이)물이 새는 위치를 입력받을 때 우선 정렬을 한 후, 길이를 탐색할 때 탐색할때 제일 처음 발견한 물이새는 곳을 기준으로 L-1만큼 증가한 위치를 찾으면 된다. 그 이후 이어서 탐색하여 또 물이 새는곳을 발견하면 테이프를 붙인다.내 코드)
풀이)각 부분에 재귀 호출을 하되, 시간 복잡도를 줄이기 위해 dp를 사용한다.즉, 6으로 나눠지는 경우는 3으로 나누는 경우와 2로 나누는 경우, 1을 빼는 경우 모두 재귀호출 하여 3가지 경우 중 최솟값으로 DP를 갱신해야 하고, 3으로만 나눠지는 경우는 3으로 나
풀이)스택은 모든 연산이 O(1)의 시간 복잡도를 가지기 때문에 시간 초과에 걸리지 않는다.맨 처음 커서는 입력 문자열의 맨 뒤에 위치하기 때문에 문자열을 모두 왼쪽 스택에 넣어준다.이후 차례로 명령어를 처리하면서 커서가 왼쪽으로 이동하면 왼쪽 스택의 가장 상단 요소를
풀이)에라토스테네스의 체를 활용하여 소수를 구한다.DP 리스트를 만들어 해당하는 수가 소수로 나누어지는지 확인하고 i가 j로 나누어진다면, DPi = DPi / j + 1이다. 작은 수부터 탐색하기 때문에 값이 벗어나는 경우는 없다.DP에 저장된 소인수 개수는 Hash
내 풀이)아스키 코드를 이용해 이름의 첫 글자가 몇 번 나왔는지를 체크하고 배열에 저장한다.입력값이 작아 시간복잡도가 커도 상관없다.내 코드)
풀이)주어진 범위 안에서 8이 가장 적게 나올 때를 찾아야 한다. 800 ->899 (8 하나가 백의 자리로 무조건 들어감)800 ->900 (900, 8이 안 들어가도 되는 수 있음)80000 -> 89999 (8 무조건 들어가야 함)80000 -> 812343123
풀이) (0, N] 이내의 범위에 대해 현재위치를 x, x위치에 써있는 정수가 n이라고 하면 .., x-2n, x-n, x+n, x+2n,... 로 움직일 수 있다. 따라서 매번 저 범위에 대해 BFS로 진행해주면 된다. 물론 이전에 이미 왔던 곳이라면 안가도 된다. 내 코드)
풀이)아래 에미지에서 첫줄 '11'을 바꿈으로써 그 양옆 '00'들을 한꺼번에 바꿀 수 있는 것 처럼 중간에 있는 무언가를 바꾼다면, 그 다음 더 넓은 지역을 바꾸는데 도움이 된다고 생각할 수 있다. 그래서 어떻게 생각할 지 어렵게 여겨질 수 있다. 하지만 이러한 경우
풀이)x ,y좌표 둘 중 작은 값을 선택해서 먼저 간다( 큰 값을 고를 경우 원하는 좌표 그 이상을 가버릴 수도 있다)그리고 나머지는 x-y 절댓값을 통해 대각선으로 얼마만큼 이동하고 원하는 좌표까지 얼마나 남았는지 알 수 있다. 이 절댓값을 더해주면 된다. 4가지 경
풀이)어떤 임의의 수 N이 들어올 때, 해당 수 N 은 K + K의 각 자릿수 합이다.예로들어 네자릿수 정수 N 이 들어오면 해당 N 을 만드는 생성자는 임의의 K + K의 각 자릿수가 되는 것이다.즉, 수식으로 보면 N(4) - (k1 + k2 + k3 + k4) =
풀이)기본적으로 이 문제를 풀기 위해서는 Counting Sort(카운팅 정렬)을 사용할 것이다. 물론 정렬을 쉽게 하기 위해 Arrays.sort 로 풀 수도 있지만 최빈값을 구하는 과정에 있어 '두 번째로 작은 값'을 출력해야하다보니 조금 복잡해진다. (사실상 중앙
실버 3단계 난이도
실버 4단계 문제풀이)낱개로 사는 게 쌀지, 패키지로 사는 게 쌀지 비교하여 구하면 된다.내 코드)
실버 4단계 문제풀이)사람의 좌표값과 하키장의 좌표가 주어질 때, 몇 명의 사람이 하키장에 있는지 수를 구하여라.사람이 하키장에 있는 경우는 3가지이다.1\. (x,y)~(x+width, y+height) 직사각형 면적 내에 사람의 좌표가 있을 경우.2\. (x,y+r
풀이)이분 그래프란 1-2-3 node가 연결되어있을 때, {1,3}과 {2} 집합으로 나뉠 수 있는 그래프이다. 즉, 그래프를 탐색하는데 시작 노드를 A 집합에 넣으면 주변 노드를 B 집합에, 시작 노드가 B 집합이라면 주변노드를 A 집합에 넣고, 만약 노드가 이미
풀이)물이 새는 위치를 입력받을 때 우선 정렬을 한 후, 길이를 탐색할 때 탐색할때 제일 처음 발견한 물이새는 곳을 기준으로 L-1만큼 증가한 위치를 찾으면 된다. 그 이후 이어서 탐색하여 또 물이 새는곳을 발견하면 테이프를 붙인다.내 코드)
풀이)기본적으로 이 문제를 풀기 위해서는 Counting Sort(카운팅 정렬)을 사용할 것이다. 물론 정렬을 쉽게 하기 위해 Arrays.sort 로 풀 수도 있지만 최빈값을 구하는 과정에 있어 '두 번째로 작은 값'을 출력해야하다보니 조금 복잡해진다. (사실상 중앙