본문 바로가기

알고리즘/백준 Baekjoon19

백준 1697번 숨바꼭질(JAVA) - BFS 백준 1697번 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제설명 x+1, x-1 , x*2로 움직이는 좌표를 계산해서 BFS 접근 BFS로 접근 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; .. 2023. 3. 24.
백준 1926번 그림(JAVA) - BFS 백준 1926번 https://www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net 문제설명 도화지의 크기 n,m을 입력받고 연결된 그림중 가장큰수, 그림의 개수를 구하는 문제 ( 1로 연결된것은 한개의 그림, 가로 세로만 연결된 것으로 가정) 접근 BFS로 접근 코드 package boj; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import .. 2023. 3. 22.
(LEVEL 2)프로그래머스 - 튜플 (JAVA) [2019 카카오 개발자 겨울 인턴십] 문제 입출력 예 풀이. 1. 튜플이 만약 (2,1,3,4) 라면 전달받는 s에는 "2"가 4번, "1"이 3번, "3"이 2번, "4"가 1번 등장한다. ex) 세번째의 tc를 보면 "111"이 두번, " 20"이 1번 등장하므로 순서는 많이 등장한 (111,20) 순으로 튜플을 생성해야한다. 2. 위의 규칙을 생각하고 문자열 s를 "," 와 "{" 와 "}" 를 기준으로 split한다. (해당 과정에서 "" 빈문자열로도 나눠지므로 유의) 3. split한 문자열을 HashMap에 1씩 증가시키며 저장한다. 4. 마지막으로 포함횟수가 많을수록 튜플의 순서에는 앞쪽으로 가야하므로 map의 size에서 포함횟수를 빼서 answer에 저장한다. 코드 import java.util.*; class Solutio.. 2023. 3. 13.
백준 4963번 섬의 개수(JAVA) - DFS 백준 4963번 https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 문제설명 지도의 크기를 입력받고, 1(땅), 0(바다) 로 구분지어진 값들을 입력받아 섬의 개수를 세는 프로그램 작성. 섬이란 가로, 세로 또는 대각선 까지 연결되어있는 사각형을 말한다. 지도의 크기 0, 0 을 입력받으면 종료. 접근 1. 지도의 크기 w,h를 입력 받고 지도를 초기화 하면서 방문여부인 visit도 초기화 해준다. 2. 입력받은 w,h를 통해 0,1을 입력 .. 2023. 2. 19.