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) 숫자로 방향을 표시하면 방향을 전환을 할때 매우 편해진다. 특히 방향을 반시계 방향 순서대로 정하면 규칙을 ..
https://www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 풀이 문제에서 주어진 대로 진행한다. 1) 클래스 FireBall 을 생성. (좌표, 질량, 뱡향, 속력을 담을 용도), 파이어볼의 갯수를 담을 map[][] 생성 2) List에 입력받은 M개의 FireBall 들을 담는다. map[r][c]++ 3) 모든 파이어볼을 이동시킨다. map[r][c]--, map[nr][nc]++ 4) 파이어볼이 2개 이상 있..
- Total
- Today
- Yesterday
- java
- 문자열
- G5
- S2
- 알고리즘
- 시뮬레이션
- 백준
- 백트래킹
- laugh4mile
- PriorityQueue
- 그리디
- 객체지향
- BFS
- 코딩새내기
- 리액트
- Spring Boot
- S3
- map
- 자바
- react native
- 우선순위큐
- 리액트 네이티브
- SWEA
- 구현
- 다익스트라
- Spring
- DFS
- react
- 현꾸라지
- 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 | 31 |