◈ Coding Test

    [백준/BOJ] 2631번: 줄세우기 - JAVA [자바]

    2631번: 줄세우기 KOI 어린이집에는 N명의 아이들이 있다. 오늘은 소풍을 가는 날이다. 선생님은 1번부터 N번까지 번호가 적혀있는 번호표를 아이들의 가슴에 붙여주었다. 선생님은 아이들을 효과적으로 보호하기 www.acmicpc.net - 백준 2631번: 줄 세우기 문제 링크 참고 입력 첫째 줄에는 아이들의 수 N이 주어진다. 둘째 줄부터는 1부터 N까지의 숫자가 한 줄에 하나씩 주어진다. N은 2 이상 200 이하의 정수이다. 출력 첫째 줄에는 번호 순서대로 줄을 세우는데 옮겨지는 아이들의 최소 수를 출력한다. import java.util.Scanner; public class BOJ_2631 { public static void main(String[] args) { Scanner sc = n..

    [알고리즘] 완전탐색, 브루트 포스(brute force) [무차별 대입(無差別代入), A부터 Z까지 다 해보기]

    - 완전탐색, 브루트 포스(brute force) 브루트 포스는 조합 가능한 모든 문자열을 하나씩 대입해 보는 방식이다. 키 전수조사(exhaustive key search) 또는 무차별 대입(無差別代入)이라 불린다. 이 방식은 오래 걸리고 자원이 엄청나게 들어서 무식해보이지만, 항상 정확도 100%를 보장한다. ex) 4자리 숫자로 된 비밀번호 → 총 1만 개의 조합 중 하나 (0000, 0001, 0002, ... 9999) - 브루트포스 활용 문제 - 실버 5 💍 : 영화감독 숌 [백준/BOJ] 1436번: 영화감독 숌 - JAVA [자바] 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상..

    [알고리즘] 에라토스테네스의 체(Sieve of Eratosthenes) [간단하고 빠르게 소수 찾기]

    - 에라토스테네스의 체(Sieve of Eratosthenes) 에라토스테네스의 체는 간단하고 빠르게 소수를 찾는 방법이다. 아래는 에라토스테네스의 체를 구현해 놓은 코드이다. private static boolean[] eratos(int num) { // 0과 1은 소수가 아님 if(num < 2) { return 0; } // 0부터 num까지의 배열 생성 boolean[] nums = new boolean[num + 1]; // 0과 1을 true로 초기화. false는 소수, true는 소수가 아닌 수 nums[0] = nums[1] = true; /*에라토스테네스의 체에 맞게 소수를 구함 *1) nums[i]가 true이면 i 이후의 i 배수는 약수로 i를 가지고 있는 것이 되므로 i 이후의 ..

    [백준/BOJ] 2154번: 수 이어 쓰기 3 - JAVA [자바]

    2154번: 수 이어 쓰기 3 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. www.acmicpc.net - 백준 2154번: 수 이어 쓰기 3 문제 1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다. → 1234567891011121314151617181920212223... 이렇게 만들어진 새로운 수에서 N이 등장하는 위치를 알고 싶다. 물론 1부터 N까지의 수를 이어 쓰는 것이므로 수의 가장 끝부분에서 N이 항상 등장하게 되지만, 그보다 일찍 등장하는 경우도 있다. 예를 들어 N=151인 경우, 다음과 같이 앞에서 20번째 숫자부터 151이 등장하게 된다. → 1234567891011121314151617181920212223... N이 주어졌을 때, N이 ..

    [백준/BOJ] 1790번: 수 이어 쓰기 2 - JAVA [자바]

    1790번: 수 이어 쓰기 2 첫째 줄에 N(1 ≤ N ≤ 100,000,000)과, k(1 ≤ k ≤ 1,000,000,000)가 주어진다. N과 k 사이에는 공백이 하나 이상 있다. www.acmicpc.net - 백준 1790번: 수 이어 쓰기 2 문제 1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다. → 1234567891011121314151617181920212223... 이렇게 만들어진 새로운 수에서, 앞에서 k번째 자리 숫자가 어떤 숫자인지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 100,000,000)과, k(1 ≤ k ≤ 1,000,000,000)가 주어진다. N과 k 사이에는 공백이 하나 이상 있다. 출력 첫째 줄에 앞에서 k번째..