본문 바로가기

분류 전체보기

(215)
백준 14226 이모티콘 (Java) 1. 문제 링크 14226번: 이모티콘 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 1. 최소 시간을 구하는 문제라 BFS 탐색을 이용했다. 2. 큐에 지금 이모티콘 수(now), 클립보드에 있는 이모티콘 수(save), 연산 횟수(cnt) 3가지를 넣는다. 3. 원하는 이모티콘 수가 나올 때까지 반복한다. 3-1. now가 0보가 크고, [now][now]에 방문한 적이 없는 경우에, 클립보드로 복사한다. 3-2. save가 0보다 크고, now+save가 2000보다 작고, [now+sa..
백준 2448 별 찍기 - 11 (Java) 1. 문제 링크 2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 1. 아래의 모양이 반복된다는 규칙을 찾을 수 있다. * * * ***** 2. 위에서 아래로 트리의 가지를 치는 느낌으로 가면서 삼각형을 만들어가기 위해 재귀를 이용했다. 4. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { static char[][] m..
백준 1744 수 묶기 (Java) 1. 문제 링크 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 1. 큰 순으로 정렬해서 곱한다. 2. 1은 무조건 더한다. 3. 양수의 경우 조건 3-1. 양수가 짝수일 경우, 큰 순서대로 2개씩 묶어서 더한다. 3-2. 양수가 홀수일 경우, 큰 순서대로 2개씩 묶어서 더하고, 남은 하나는 그냥 더한다. 3-3. 양수가 하나인 경우, 그냥 더한다. 4. 음수의 경우 조건 4-1. 음수가 짝수일 경우, 큰 순서대로 2개씩 묶어서 큰 양수로 만들어 더한다. 4-2. 음..
백준 1726 로봇 (Java) 1. 문제 링크 1726번: 로봇 많은 공장에서 로봇이 이용되고 있다. 우리 월드 공장의 로봇은 바라보는 방향으로 궤도를 따라 움직이며, 움직이는 방향은 동, 서, 남, 북 가운데 하나이다. 로봇의 이동을 제어하는 명령어는 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 1. BFS 탐색을 통해 도착점에 원하는 방향으로 도착하면 끝낸다. 2. Go 1,2,3 을 이용한 1번 명령을 진행하여 이동 위치를 가지고 판단한다. 2-1. 이동 위치가 공장 내에 위치하는지 확인한다. 2-2. 이동 위치에 궤도가 깔려 있는지 확인한다. 2-3. 이동 위치를 방문한 적이 있는지 확인한다. 3. Turn left, right를 이용해 90도 회전한다. 3-1. 동/서 => 남/북, 남/북 => 동/..
백준 1749 점수따먹기 (Java) 1. 문제 링크 1749번: 점수따먹기 동주는 항상 혼자 노느라 심심하다. 하지만 혼자 놀기의 고수가 된 동주는 매일매일 게임을 개발하여 혼자놀기의 진수를 우리에게 보여준다. 어느 날 동주는 새로운 게임을 개발하였다. 바로 점 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 1. 2차원 배열을 이용한 구간 누적 합으로 구했다. 4. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new..
백준 1238 파티 (Java) 1. 문제 링크 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 1. 시작점 리스트에 끝점과 소요 시간을 담는다. 2. 다익스트라를 이용해서 최단 시간을 구한다. 3. 파티에 가는 시간과 파티에서 오는 시간을 합쳐 최댓값을 구한다. 4. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.A..
백준 12904 A와 B (Java) 1. 문제 링크 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 1. A로 B를 만들기에는 매번 2연산씩 하면서 계산이 많아질 것으로 생각했다. 2. B의 마지막 자리를 확인하고 그 문자에 따른 연산을 실시했다. 2-1. 마지막 문자를 저장한다. 2-2. 마지막 문자를 문자열에서 지운다.(deleteCharAt()) 2-3. 마지막 문자가 B였다면 뒤집는다. (reverse()) 3. 남은 문자열이 같은 경우에 1을 출력하고, 다르다..
백준 1188 음식 평론가 (Java) 1. 문제 링크 1188번: 음식 평론가 첫째 줄에 소시지의 수 N과 평론가의 수 M이 주어진다. (1 ≤ N, M ≤ 100) www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 1. M과 N의 최대공약수를 구한다. 2. 나눠줄 양이 최대공약수이기 때문에 평론가 수에서 빼면 된다. +) 나눠야 된다는 생각에 어떻게 나눌지 생각하다가 최대공약수로 풀게 되었다. 4. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { Buffer..