JAVA/알고리즘 42

백준 알고리즘 풀이(2675번)

/* * 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. * 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. * QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다. * *첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다. *각 테스트 케이스에 대해 P를 출력한다. * */ pub..

JAVA/알고리즘 2020.06.04

백준 알고리즘 풀이(2750번)

/* N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. */ public class P2750 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 입력 int N = Integer.parseInt(br.readLine())..

JAVA/알고리즘 2020.06.04

백준 알고리즘 풀이(11650번)

/* 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. */ public class P11650 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamR..

JAVA/알고리즘 2020.06.04

백준 알고리즘 풀이(1181번)

//첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. public class P1181 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); List inputStrList = new ArrayList(); for(int i=0 ; i < N ; i++){ inputStrList.add(br.read..

JAVA/알고리즘 2020.06.04

백준 알고리즘 풀이(2748번)

/* 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. 10 > 55 */ public class P2748 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedR..

JAVA/알고리즘 2020.06.04

백준 알고리즘 풀이(7785번)

/* * 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. * (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. * "enter"인 경우는 출근, "leave"인 경우는 퇴근이다. * 회사에는 동명이인이 없으며, 대소문자가 다른 경우에는 다른 이름이다. * 사람들의 이름은 알파벳 대소문자로 구성된 5글자 이하의 문자열이다. * * 현재 회사에 있는 사람의 이름을 사전 순의 역순으로 한 줄에 한 명씩 출력한다. * */ public class P7785 { public static void main(String[] args) { // 입력받는 부분은 생략한다 int N = 4; String[] input..

JAVA/알고리즘 2020.06.04

백준 알고리즘 풀이(9461번)

/* * 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. * 첫 삼각형은 정삼각형으로 변의 길이는 1이다. * 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. * 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다. * 파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. * P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다. * N이 주어졌을 때, P(N)을 구하는 프로그램을 작성하시오. * * 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, N이 주어진다. (1 ≤ N ≤ 100) * * 각 테스트 케이스마다 P(N)을 출력한다. * */ p..

JAVA/알고리즘 2020.06.04