https://www.acmicpc.net/problem/13335 13335번: 트럭 입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트 www.acmicpc.net 풀이 1) 현재 다리 위에 건너고 있는 트럭의 무게를 저장할 큐 trucks, 입력 받은 트럭을 저장할 큐 bridge, 현재 다리위의 총 무게를 저장할 변수 sum을 생성한다. 2) bridge의 초기 상태는 다리 길이 w 만큼 0을 넣는다. 3) bridge가 텅텅 빌때까지 계속 하나씩 뽑을 것이다. while() 3-1) 먼저 bridge에서 ..
https://www.acmicpc.net/problem/1052 1052번: 물병 지민이는 N개의 물병을 가지고 있다. 각 물병에는 물을 무한대로 부을 수 있다. 처음에 모든 물병에는 물이 1리터씩 들어있다. 지민이는 이 물병을 또 다른 장소로 옮기려고 한다. 지민이는 한 번 www.acmicpc.net 풀이 이진수로 바꾸면 물병이 몇개 필요한지 쉽게 알 수 있다. 예제에서 N = 3, K = 1 일때, N = 3을 이진수로 표현하면 11(2) 이다. 여기서 1의 개수가 곧 물병의 개수이다. K = 1이므로 물병은 1개 여야만한다. 따라서 가장 쉬운 방법은 1을 더해서 100(2) 로 만드는 것이다. 즉 1개의 물병만 사면 한번에 K = 1개의 물병으로 옮길 수 있게 된다. 다른 예를 들어보자. 만약 ..
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/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/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
- 현꾸라지
- 시뮬레이션
- 구현
- 문자열
- Spring Boot
- 백준
- S3
- laugh4mile
- 우선순위큐
- 코딩새내기
- BFS
- 그리디
- 리액트 네이티브
- java
- G5
- S2
- map
- 다익스트라
- 자바
- SWEA
- 알고리즘
- react
- 백트래킹
- 객체지향
- DFS
- PriorityQueue
- g4
- Spring
- 리액트
- react native
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |