
https://www.acmicpc.net/problem/9519 9519번: 졸려 첫째 줄에 X(1 ≤ X ≤ 1,000,000,000) 가 주어지고, 둘째 줄에 X번 깜박인 후의 단어가 주어진다. 단어는 알파벳 소문자로만 이루어져 있고, 길이는 구간 [3,1000]에 포함된다. www.acmicpc.net 풀이 1) 단어가 홀수일 경우와 짝수일 경우로 나누어 단어를 섞는다. 섞을때 마다 list에 저장한다. 2) 섞은 결과가 map에 이미 존재할 경우 루프를 돈다는 의미이다. 3) 루프를 발견하면 해당 map의 value 가 주기가 된다. 4) list.get(N을 주기로 나눈 나머지) 가 정답이 된다. 주의사항 1) String 을 더하는 방식으로 하면 오래 걸린다. StringBuilder를 사용..

https://www.acmicpc.net/problem/19638 19638번: 센티와 마법의 뿅망치 마법의 뿅망치를 센티의 전략대로 이용하여 거인의 나라의 모든 거인이 센티보다 키가 작도록 할 수 있는 경우, 첫 번째 줄에 YES를 출력하고, 두 번째 줄에 마법의 뿅망치를 최소로 사용한 횟수 www.acmicpc.net 풀이 1) PriorityQueue 로 거인들의 키를 담는다. 이때 큰 순서가 되기위해 Collections.reverseOrder()를 쓴다. 2) pq에서 하나씩 뽑는다. 2-1) 센티보다 크면 뿅망치로 때리고 다시 집어 넣는다. (이 때, 키가 1인 경우는 봐준다..) 2-2) 센티보다 작으면 그냥 넣어준다. 3) 2) 를 뿅망치 사용 횟수 T 만큼 반복한다. 4) 만약 pq.p..

https://www.acmicpc.net/problem/20923 20923번: 숫자 할리갈리 게임 첫째 줄에는 도도와 수연이가 가지는 카드의 개수 $N$($ 1 \leq N \leq 30\,000$)과 게임 진행 횟수 $M$($ 1 \leq M \leq 2\,500\,000$)이 주어진다. 둘째 줄부터 $N$개의 줄에는 띄어쓰기로 구분하여 도도와 수연 www.acmicpc.net 풀이 1) 도도의 덱(dodo), 도도의 그라운드(gD), 수연의 덱(suyun), 수연의 그라운드(gS) 총 4개의 Deque 자료구조를 선언한다. 2) 게임을 M번 진행한다. (while) 2-0) 도도부터 한장씩 자신의 그라운드에 펼친다. M-- 2-1) 만약 펼칠 패가 없을경우 바로 상대방의 승리이다. 2-2) 펼칠 ..

https://www.acmicpc.net/problem/3258 3258번: 컴포트 입력의 첫째 줄에는 N(2 ≤ N ≤ 1000), Z(2 ≤ Z), M(0 ≤ M ≤ N-2) 이 주어진다. N은 필드의 수이고 Z는 도착해야하는 필드의 번호를 의미한다. 다음 줄에 M개의 서로 다른 정수가 주어진다. 이 정수는 www.acmicpc.net 풀이 1) 방문체크 및 장애물을 나타내는 boolean형 배열 obstacle을 생성한다. 2) K = 1부터 1씩 증가 시키면서 Z 칸에 도달하는지 확인한다. N은 1000 이하이므로 999까지만 증가시키자. 2-0) 현재 칸이 Z 칸이면 K 출력. 2-1) 방문되지 않은 칸 and 장애물이 없는 칸 일 경우 해당 칸을 방문체크 해준다. 2-2) 방문된 칸 or 장..

https://www.acmicpc.net/problem/4587 4587번: 이집트 분수 입력으로 주어진 분수 M/N이 다음과 같이 나타낼 수 있다면, D1, D2, D3, ...를 공백으로 구분해 출력한다. (D1 ≤ D2 ≤ D3 ≤ ....) www.acmicpc.net 풀이 1) M = 0 && N = 0 이 나올때 까지 반복문을 돈다. (M : 분자, N : 분모) 2) 만약 분자(M)가 1이 아닐경우 반복문을 돌며 nextN을 찾아야 한다. 2-0) 다음 단위 분수의 후보 nextN 은 N/M(올림) 이다. 2-1) 이 때 M/N - 1/nextN을 해서 약분해야한다. 2-2) 약분을 하기 위해서 최소 공배수를 알아야한다. (다른 방법이 있을 수도 있다.) 2-3) 근데 최소 공배수를 알기 ..

https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 풀이 1) 로봇 청소기의 위치와 방향을 저장할 클래스 Node 를 생성. 청소의 유무를 저장할 boolean형 배열 isCleaned[][] 선언, 입력된 영역을 표시할 map[][] 배열 선언. 2) BFS 방식으로 이동할 영역을 탐색한다. 2-1) 현재 위치한 좌표가 청소 되지 않은 경우 isCleaned 를 true 로 바꾸고 횟수 1 추가. 2-2) 방향 전환 규칙을 찾고 공식을 만들고 ..

https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 풀이 1) 입력된 지형을 map[] 배열에 담는다. 이때 가장 높은 지점의 높이와 인덱스를 저장해 놓는다. 2) 왼쪽 끝에서 max 인덱스 까지 검사한다. 2-1) 시작 지점의 높이보다 작을 경우 빗물이 고이는 경우이다. start - map[i] 만큼 빗물이 고인다. 2-2) 시작 지점의 높이보다 클 경우 시작지점을 초기화 해준다. 3) 오른쪽도 왼쪽과 같은 방식으로 진행한다...

https://www.acmicpc.net/problem/2174 2174번: 로봇 시뮬레이션 첫째 줄에 두 정수 A, B가 주어진다. 다음 줄에는 두 정수 N, M이 주어진다. 다음 N개의 줄에는 각 로봇의 초기 위치(x, y좌표 순) 및 방향이 주어진다. 다음 M개의 줄에는 각 명령이 명령을 내리는 순 www.acmicpc.net 풀이 1) 로봇의 좌표와 방향을 담을 클래스 Robot을 생성한다. 2) List 을 생성하여 입력된 N개의 로봇을 저장한다. 3) M번의 명령을 수행한다. 3-1) 명령을 수행하며 벽이나 로봇에 부딛히는지 확인한다. 문제가 없는 경우 OK를 출력한다. 주의사항 1) 숫자로 방향을 표시하면 방향을 전환을 할때 매우 편해진다. 특히 방향을 반시계 방향 순서대로 정하면 규칙을 ..
- Total
- Today
- Yesterday
- 백트래킹
- PriorityQueue
- laugh4mile
- S3
- react native
- 그리디
- 백준
- 리액트
- 자바
- react
- 코딩새내기
- Spring Boot
- SWEA
- 구현
- 리액트 네이티브
- 다익스트라
- 시뮬레이션
- 객체지향
- G5
- 우선순위큐
- java
- S2
- map
- DFS
- 현꾸라지
- Spring
- BFS
- g4
- 알고리즘
- 문자열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |