알고리즘 문제풀이/BOJ
-
BOJ 1463번 1로 만들기 자바(java) 풀이 난이도: 실버3 백준 1463번 1로 만들기 문제 정리 정수 X가 3으로 나누어 떨어지면, 3으로 나눈다 정수 X가 2로 나누어 떨어지면, 2로 나눈다 1을 뺀다 위의 3가지 연산을 이용해 주어진 정수 N을 1로 만드려고 한다. 연산을 사용하는 횟수의 최솟값을 구하여라 1
[dfs, dp] 백준 1463번 1로 만들기 자바 풀이BOJ 1463번 1로 만들기 자바(java) 풀이 난이도: 실버3 백준 1463번 1로 만들기 문제 정리 정수 X가 3으로 나누어 떨어지면, 3으로 나눈다 정수 X가 2로 나누어 떨어지면, 2로 나눈다 1을 뺀다 위의 3가지 연산을 이용해 주어진 정수 N을 1로 만드려고 한다. 연산을 사용하는 횟수의 최솟값을 구하여라 1
2020.06.18 -
BOJ 달이 차오른다, 가자 문제 자바(java) 풀이 난이도: 골드1 백준 1194번 달이 차오른다, 가자 문제 정리 미로를 탈출하려 한다. 미로는 다음과 같이 구성되어 있다. 빈 곳: 언제나 이동 가능(.) 벽: 절대 이동 불가(#) 열쇠: 언제나 이동할 수 있다. 이 곳에 처음 들어가면 열쇠를 잡는다(a - f) 문: 대응하는 열쇠가 있을 때만 이동 가능(A - F) 민식이 위치: 빈 곳, 현재 서 있는 곳 (숫자 0) 출구: 달이 차오르기 때문에, 민식이가 가야하는 곳. 탈출로(숫자 1) 민식이는 수평, 수직으로 이동가능하다. 탈출하는데 걸리는 이동 횟수의 최솟값을 구하시오 열쇠와 문은 여러 개일 수도 있다. 문에 대응하는 열쇠가 없을수도 있다. 0은 1개, 1은 적어도 한 개 있다. 열쇠는 여러..
[bfs, bitmasking] 백준 1194번 달이 차오른다, 가자 자바 풀이BOJ 달이 차오른다, 가자 문제 자바(java) 풀이 난이도: 골드1 백준 1194번 달이 차오른다, 가자 문제 정리 미로를 탈출하려 한다. 미로는 다음과 같이 구성되어 있다. 빈 곳: 언제나 이동 가능(.) 벽: 절대 이동 불가(#) 열쇠: 언제나 이동할 수 있다. 이 곳에 처음 들어가면 열쇠를 잡는다(a - f) 문: 대응하는 열쇠가 있을 때만 이동 가능(A - F) 민식이 위치: 빈 곳, 현재 서 있는 곳 (숫자 0) 출구: 달이 차오르기 때문에, 민식이가 가야하는 곳. 탈출로(숫자 1) 민식이는 수평, 수직으로 이동가능하다. 탈출하는데 걸리는 이동 횟수의 최솟값을 구하시오 열쇠와 문은 여러 개일 수도 있다. 문에 대응하는 열쇠가 없을수도 있다. 0은 1개, 1은 적어도 한 개 있다. 열쇠는 여러..
2020.06.17 -
BOJ 7569번 토마토 문제 자바(java) 풀이 난이도: 실버1 백준 7569번번 토마토 문제 정리 창고에 보관한 토마토중에 잘 익은 것과 익지 않은 것이 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익게 된다. 인접한 곳은 위, 아래, 왼쪽, 오른쪽, 앞, 뒤 이다. (대각선 X) 창고의 토마토들이 며칠이 지나면 다 익게 되는지 최소 일수를 구하려 한다. 모든 칸에 토마토가 들어있지 않을 수 있다. 1: 익은 토마토, 0: 익지 않은 토마토, -1: 토마토가 들어있지 않음 저장될 때 부터 모든 토마토가 익어있는 상태이면 0을 출력 토마토가 모두 익지 못한다면 -1 출력 문제 접근 3차원 형태의 배열을 가지고 bfs 탐색을 통해 토마토를 익혀가면 된다. 3차..
[BFS] 백준 7569번 토마토 자바 풀이BOJ 7569번 토마토 문제 자바(java) 풀이 난이도: 실버1 백준 7569번번 토마토 문제 정리 창고에 보관한 토마토중에 잘 익은 것과 익지 않은 것이 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익게 된다. 인접한 곳은 위, 아래, 왼쪽, 오른쪽, 앞, 뒤 이다. (대각선 X) 창고의 토마토들이 며칠이 지나면 다 익게 되는지 최소 일수를 구하려 한다. 모든 칸에 토마토가 들어있지 않을 수 있다. 1: 익은 토마토, 0: 익지 않은 토마토, -1: 토마토가 들어있지 않음 저장될 때 부터 모든 토마토가 익어있는 상태이면 0을 출력 토마토가 모두 익지 못한다면 -1 출력 문제 접근 3차원 형태의 배열을 가지고 bfs 탐색을 통해 토마토를 익혀가면 된다. 3차..
2020.06.15 -
BOJ 1012번 유기농 배추 문제 자바(java) 풀이 난이도: 실버2 풀이시간: 20분 백준 1012번 유기농 배추 설치 문제 정리 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. 배추가 상하좌우로 붙어있으면 인접해있다고 본다. 배추들이 모여있는 곳에는 배추흰지렁이가 한 마리만 있으면 서로 퍼지므로 총 몇 마리의 지렁이가 필요한지 알 수 있다. 다음과 같이 입력이 주어진다 TC 개수 가로 세로 배추개수 맵 각 TC에 대해 필요한 최소의 배추흰지렁이 마리 수를 출력한다. 문제 접근 이 문제는 bfs를 이용하여 영역의 개수를 구하는 것과 같은 문제입니다. bfs를 통해 1로 이어져 있는 영역은(배추가 이..
[bfs] 백준 1012번 유기농 배추 자바 풀이BOJ 1012번 유기농 배추 문제 자바(java) 풀이 난이도: 실버2 풀이시간: 20분 백준 1012번 유기농 배추 설치 문제 정리 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. 배추가 상하좌우로 붙어있으면 인접해있다고 본다. 배추들이 모여있는 곳에는 배추흰지렁이가 한 마리만 있으면 서로 퍼지므로 총 몇 마리의 지렁이가 필요한지 알 수 있다. 다음과 같이 입력이 주어진다 TC 개수 가로 세로 배추개수 맵 각 TC에 대해 필요한 최소의 배추흰지렁이 마리 수를 출력한다. 문제 접근 이 문제는 bfs를 이용하여 영역의 개수를 구하는 것과 같은 문제입니다. bfs를 통해 1로 이어져 있는 영역은(배추가 이..
2020.06.14 -
BOJ 1637번 날카로운 눈 자바(java) 풀이 랭크 : 골드1 백준 1637번 날카로운 눈 문제 정리 정수가 여러 개 모여 있는 정수더미가 있다. 그 안에는 어떤 특정한 정수 하나만 홀수개 존재하고 나머지 정수는 짝수개 존재한다. 이 중에서 홀수개가 존재하는 정수를 찾아야한다. N은 1이상 20,000이하 그리고 N개의 줄에 걸쳐 세개의 숫자(A, C, B)가 주어진다. A, A+B, A+2B, A+3B...의 정수들이 정수더미 안에 있다. A+kB는 C보다 작거나 같다. 1
[이분탐색] 백준 1637번 날카로운 눈 자바 풀이BOJ 1637번 날카로운 눈 자바(java) 풀이 랭크 : 골드1 백준 1637번 날카로운 눈 문제 정리 정수가 여러 개 모여 있는 정수더미가 있다. 그 안에는 어떤 특정한 정수 하나만 홀수개 존재하고 나머지 정수는 짝수개 존재한다. 이 중에서 홀수개가 존재하는 정수를 찾아야한다. N은 1이상 20,000이하 그리고 N개의 줄에 걸쳐 세개의 숫자(A, C, B)가 주어진다. A, A+B, A+2B, A+3B...의 정수들이 정수더미 안에 있다. A+kB는 C보다 작거나 같다. 1
2020.06.13 -
BOJ 1107 리모콘 자바(java) 풀이 랭크 : 골드5 백준 1107 리모컨 문제 정리 리모컨의 일부 숫자 버튼이 고장났다. 리모컨에는 0~9까지의 숫자 버튼과ㅏ +, - 버튼이 있다 '+' 버튼은 +1된 채널, '-' 버튼은 -1된 채널로 이동한다. 채널 0에서 -를 누른 경우에는 채널이 변하지 않고, 채널은 무한대 만큼 있다. 수빈이가 지금 이동하려고 하는 채널은 N이고, 고장난 버튼이 주어질 때, 채널 N으로 이동하기 위해 최소 몇번 버튼을 눌러야 하는지 구하시오 이동하려는 채널 최대 500,000 수빈이가 지금 보고 있는 채널은 100번 문제 접근 이 문제는 다음과 같은 사항을 고려하여야 합니다 고장난 버튼 수가 없는 경우 -> 입력 받지 않음 원하는 번호가 100번인 경우 -> 0 출력하고..
[완전탐색, 백트래킹] 백준 1107번 리모컨 자바 풀이BOJ 1107 리모콘 자바(java) 풀이 랭크 : 골드5 백준 1107 리모컨 문제 정리 리모컨의 일부 숫자 버튼이 고장났다. 리모컨에는 0~9까지의 숫자 버튼과ㅏ +, - 버튼이 있다 '+' 버튼은 +1된 채널, '-' 버튼은 -1된 채널로 이동한다. 채널 0에서 -를 누른 경우에는 채널이 변하지 않고, 채널은 무한대 만큼 있다. 수빈이가 지금 이동하려고 하는 채널은 N이고, 고장난 버튼이 주어질 때, 채널 N으로 이동하기 위해 최소 몇번 버튼을 눌러야 하는지 구하시오 이동하려는 채널 최대 500,000 수빈이가 지금 보고 있는 채널은 100번 문제 접근 이 문제는 다음과 같은 사항을 고려하여야 합니다 고장난 버튼 수가 없는 경우 -> 입력 받지 않음 원하는 번호가 100번인 경우 -> 0 출력하고..
2020.06.10