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개 이상 있..
https://www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net 풀이 1) 사다리를 나타내는 이차원 배열 ladder[][]를 생성한다. 가로선을 나타낼 변수 cnt = 1 생성. 2) cnt를 1씩 증가시키면서 ladder에 가로선을 표시한다. 3) 사다리 게임을 진행하는 함수 boolean isCorrect()를 만든다. 만약 true이면 자기자신으로 돌아오는 경우이며 false일 경우 자기자신으로 돌아오지 않는 경우이다. 3) 문제에서 가로선은 3개까지..
https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 풀이 지문 그대로 따라하면 된다. 1) 구름 생성 (왼쪽 아래 모서리 4칸) 2) 구름 이동 (현재 구름위치 저장 : isVisited[][]) 3) 물복사 버그 4) 구름 제거 5) 2 이상인 좌표에서 구름 생성 & -2 6) 2)로 이동 주의사항 1) 풀다가 졸지말자 package com.baekJoon; import java.io.BufferedReader; import java.io..
https://www.acmicpc.net/problem/1091 1091번: 카드 섞기 지민이는 카지노의 딜러이고, 지금 3명의 플레이어(0, 1, 2)가 있다. 이 게임은 N개의 카드를 이용한다. (0 ~ N-1번) 일단 지민이는 카드를 몇 번 섞은 다음에, 그것을 플레이어들에게 나누어 준다. 0 www.acmicpc.net 풀이 1) card 배열 생성. card 배열은 0부터 N-1 까지 0,1,2 를 순서대로 저장한다. -> 초기 상태 2) while문 으로 card가 P와 같아질 때까지 셔플을 한다. 만약 card가 초기 상태가 될 경우 아무리 셔플을 해도 무한 반복이 된다는 의미이다. 3) while문을 한번 돌때마다 cnt 를 1씩 더한다. 만약 while문을 벗어날 경우 cnt를 출력한다..
- Total
- Today
- Yesterday
- Spring
- 자바
- Spring Boot
- 구현
- S2
- 우선순위큐
- PriorityQueue
- map
- 리액트
- java
- 다익스트라
- DFS
- 문자열
- 그리디
- react
- SWEA
- g4
- S3
- 백트래킹
- 시뮬레이션
- 코딩새내기
- 현꾸라지
- react native
- 리액트 네이티브
- 알고리즘
- BFS
- 백준
- 객체지향
- G5
- laugh4mile
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |