알고리즘
-
백준 알고리즘 9단계 기본 수학2 1978번 문제입니다. Q. 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. [입력] - 첫 줄에 수의 개수 N이 주어진다. - 둘째 줄에 N개의 수가 주어진다. [조건] - N은 100이하이다. - N개의 수는 1000이하의 자연수이다. 풀이 소수는 1보다 큰 자연수 중 1과 자기 자신만을 약수로 갖는 수를 말한다. 이 문제는 반복문을 돌려 자신 이외의 수로 떨어지는 경우를 체크하는 방식으로 풀 수 있었다. 소스 package com.baek.algo.step09; import java.util.Scanner; public class Q1978 { public static void main(String[] args) { Scanner s..
[백준/Java]Q1978 2021. 7. 21. -
백준 알고리즘 8단계 기본 수학1 10757번 문제입니다. Q. 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. [입력] - 첫째 줄에 A와 B가 주어진다. [조건] - 0 < A,B < 10의 10000승 Ex) 9223372036854775807 + 9223372036854775808 = 18446744073709551615 풀이 이 문제는 정수형 타입의 범위를 벗어날 경우 어떻게 계산을 할 것인지에 대한 문제였다. long타입 범위는 -9223372036854775808 ~ 9223372036854775807로 예제와 같이 두 정수를 더하는 경우 범위를 넘게 된다. 가장 먼저 든 생각은 입력받은 숫자를 문자열로 받아 각각의 자리수 합을 더해 총 합을 구하는 것이었다. 입..
[백준/Java]Q10757 2021. 7. 17. -
백준 알고리즘 8단계 기본 수학1 2775번 문제입니다. Q. 아래 조건과 같은 아파트가 있을 때, k층 n호에는 몇 명이 살고 있는지 출력하는 프로그램을 작성하시오. [입력] - 첫 번째 줄에 테스트 케이스 T가 주어진다. - 각각의 케이스마다 첫 번째 줄에 정수 K, 두 번째 줄에 정수 N이 주어진다. [조건] - 1 ≤ K, N ≤ 14 - K층 N호에 살려면 자신의 아래(K-1)층의 1호부터 N호까지 사람들의 수의 합만큼 사람들이 살아야한다. - 아파트는 0층부터 있고 각층은 1호부터 있으며 0층의 i호에는 i명이 산다. 풀이 문제를 풀기 위해 조건에 따라 아파트를 그려봤다. 아파트는 0층부터 있으며, 0층은 숫자가 1부터 +1씩 증가한다. 조건에 따라 K층 N호에 거주하는 사람 수는 K-1층의 ..
[백준/Java]Q2775 2021. 7. 16. -
백준 알고리즘 8단계 기본 수학1 2839번 문제입니다. Q. 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. [입력] - 첫째 줄에 N이 주어진다. [조건] - 3 ≤ N ≤ 5000 - 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. - 봉지의 최소 개수를 출력한다. 만약 정확하게 N킬로그램을 만들 수 없다면 -1을 출력한다. Ex) 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만 5킬로그램 3개와 3킬로그램 1개를 배달하면 더 적은 개수의 봉지를 배달할 수 있다. 풀이 일단 봉지를 가장 적게 가져가기 위해서는 당연하게도 3킬로그램 봉지보다는 5킬로그램 봉지를 최대한 사용해야한다. 먼저, 테스트 케이스를 ..
[백준/Java]Q2839 2021. 7. 16. -
백준 알고리즘 8단계 기본 수학1 10250번 문제입니다. Q. ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하시오. [입력] - 첫 줄에 테스트 데이터 개수 T가 주어진다. - 호텔의 층 수, 각 층의 방 수, 몇 번째 손님인지를 나타내는 세 정수 H, W, N이 주어진다. [조건] - 1 ≤ H, W ≤ 99, 1 ≤ N ≤ H × W - 호텔은 직사각형 모양이고 각 층에 W 개의 방이 있는..
[백준/Java]Q10250 2021. 7. 14. -
백준 알고리즘 8단계 기본 수학1 2869번 문제입니다. Q. 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라가려고 한다. 달팽이는 낮에 A미터를 올라가고 밤에 B미터 미끄러진다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. [입력] - 세 정수 A, B, V가 공백으로 구분되어서 주어진다. [조건] - 1 ≤ B < A ≤ V ≤ 1000000000 - 정상에 올라간 후에는 미끄러지지 않는다. - 시간제한 0.15초 풀이 이 문제에서 중요한 건 시간제한이 있다는 것과 정상에 올라간 후에는 미끄러지지 않는다는 조건이었다. 시간제한이 있기 때문에 반복문을 쓰지 않고 결과를 구해야 했다. 일단 단순히 봤을 때 (달팽이가 올라가야하는 높이) / ..
[백준/Java]Q2869 2021. 7. 14. -
백준 알고리즘 8단계 기본 수학1 1193번 문제입니다. Q. 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 이와 같이 나열된 분수들을 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. [입력] - 정수 X가 주어진다. [조건] - X(1 ≤ X ≤ 10,000,000) Ex) 14 -> 2/4 풀이 조건을 생각했을 때, 배열의 분수들은 다음과 같이 규칙을 가지고 있었다. 1/1부터 1이 시작된다. 2~3은 순서대로 1/2, 2/1 분자가 1씩 증가(2까지)하고 분모는 1씩 감소(2부터)한다. (2~3 개수 : 2) 4~6은 순서대로..
[백준/Java]Q1193 2021. 7. 13. -
백준 알고리즘 8단계 기본 수학1 2292번 문제입니다. Q. 그림과 같이 육각형으로 이루어진 모형에서 숫자 N이 주어졌을때, 중앙 번호 1에서 N번까지 가는 횟수를 계산하는 프로그램을 작성하시오. [입력] - 정수 N이 주어진다. [조건] - N(1 ≤ N ≤ 1000000000) - 횟수는 시작과 끝을 포함한다. 풀이 그림을 분석해봤을 때 규칙을 한가지 찾을 수 있었다. 1 -> 5 : 2 1 -> 7 : 2 1 -> 8 : 3 1 -> 13 : 3 1 -> 10 : 3 1 -> 28 : 4 1 -> 20 : 4 1 -> 31 : 4 1 -> 40 : 5 1 -> 50 : 5 1 -> 69 : 6 N번까지 가는 횟수의 초기값은 2이고(물론 N이 1인 경우는 초기값이 1이어야 했다), Min값과 Max..
[백준/Java]Q2292 2021. 7. 12.