Competition/Baekjoon 85

[백준] 5014번 자바 스타트 링크

문제 출처 https://www.acmicpc.net/problem/5014 5014번: 스타트링크 문제 강호는 코딩 교육을 하는 스타트업 스타트링크에 지원했다. 오늘은 강호의 면접날이다. 하지만, 늦잠을 잔 강호는 스타트링크가 있는 건물에 늦게 도착하고 말았다. 스타트링크는 총 F층으로 이루어진 고층 건물에 사무실이 있고, 스타트링크가 있는 곳의 위치는 G층이다. 강호가 지금 있는 곳은 S층이고, 이제 엘리베이터를 타고 G층으로 이동하려고 한다. 보통 엘리베이터에는 어떤 층으로 이동할 수 있는 버튼이 있지만, 강호가 탄 엘리베이터는 버튼이 2개밖에 없 www.acmicpc.net 접근 방식 및 풀이 - BFS , DFS 방법 모두 사용할 수 있지만, DFS는 시간초과로 BFS로 해결했다. 소스 코드 1..

[백준] 2186번 자바 문자판

문제 출처 https://www.acmicpc.net/problem/2186 2186번: 문자판 첫째 줄에 N(1 ≤ N ≤ 100), M(1 ≤ M ≤ 100), K(1 ≤ K ≤ 5)가 주어진다. 다음 N개의 줄에는 M개의 알파벳 대문자가 주어지는데, 이는 N×M 크기의 문자판을 나타낸다. 다음 줄에는 1자 이상 80자 이하의 영단어가 주어진다. 모든 문자들은 알파벳 대문자이며, 공백 없이 주어진다. www.acmicpc.net 접근 방식 및 풀이 - DF + DFS 적용 문제이다. DFS 만으로 풀기에 시간이 너무 오래걸리므로 DF 알고리즘도 함께 적용한다. - 참고 블로그 - 자세한 내용은 주석에다가 다 적어 놓았다. 소스 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16..

[백준] 2003번 자바 수들의합2

문제 출처 https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1≤N≤10,000), M(1≤M≤300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 접근 방식 및 풀이 - 투포인트 알고리즘 사용 - 1806과 유사한 문제 [Algorithm/백준] - [백준] 1806번 부분합 소스 코드 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 32 33 34 35 36 import java.util.Scanner..

[백준] 1759번 자바 암호만들기

문제 출처 https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 접근 방식 및 풀이 - DFS 알고리즘을 통해서 해결 - C개의 문자중 L개의 문자열을 만들수 있는 케이스를 돌며 조건에 맞으면 출력 - 조건 1. 문자열은 L개 - 조건 2. 최소 모음 1개, 자음 2개 이상 - 참고 블로그 소스 코드 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 32 ..

[백준] 1806번 부분합

문제 출처 https://www.acmicpc.net/problem/1806 1806번: 부분합 문제 10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. 출력 첫째 줄에 구하고자 하는 최소의 길 www.acmicpc.net 접근 방식 및 풀이 - 투포인트 알고리즘 이용 [Algorithm] - [알고리즘] 투포인트 알고리즘 - 배열의 순서는 움직일수..

[백준] 1697번 자바 숨박꼭질

문제 출처 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 www.acmicpc.net 접근 방식 및 풀이 - BFS 활용하는 문제 [Algorithm/개념 정리] - [알고리즘] BFS DFS 불러오는 중입니다....

[백준] 1644번 자바 소수의 연속합

문제 출처 https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 문제 하나 이상의 연속된 소수의 합으로 나타낼 수 있는 자연수들이 있다. 몇 가지 자연수의 예를 들어 보면 다음과 같다. 3 : 3 (한 가지) 41 : 2+3+5+7+11+13 = 11+13+17 = 41 (세 가지) 53 : 5+7+11+13+17 = 53 (두 가지) 하지만 연속된 소수의 합으로 나타낼 수 없는 자연수들도 있는데, 20이 그 예이다. 7+13을 계산하면 20이 되기는 하나 7과 13이 연속이 아니기에 적합한 표현이 아니다. 또한 한 www.acmicpc.net 접근 방식 및 풀이 - 주어진 n만큼의 소수를 구한다. - 구한 소수로 더해가며 n만큼 나오면 count를 증가한다. - ..

[백준] 1525번 자바 퍼즐

문제 출처 https://www.acmicpc.net/problem/1525 1525번: 퍼즐 세 줄에 걸쳐서 표에 채워져 있는 아홉 개의 수가 주어진다. 한 줄에 세 개의 수가 주어지며, 빈 칸은 0으로 나타낸다. www.acmicpc.net 접근 방식 및 풀이 - BruteForce와 BFS 활용 문제 - 자세한 것은 아래 주석 참고 - 참고블로그 소스 코드 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68..

[백준] 1107번 자바 리모컨

문제 출처 https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼이 주어지며, 같은 버튼이 여러 번 주어지는 경우는 없다. www.acmicpc.net 접근 방식 및 풀이 - 완전탐색 알고리즘을 사용하여 모든 케이스들을 생각해내야 한다. - 조건 1. 100이면 count 0 - 조건 2. 리모콘이 고장 나지 않았으면, 배열의 숫자만큼 또는 리모컨 +- 한 count 중 최소값 - 조건 3. 리모콘이 고장 났으면, 고장난 리모컨으로 누를수 있는 숫자 케이스와 리모..