본문 바로가기
728x90
반응형

알고리즘35

백준 2577 숫자의 갯수(Java) - 배열 문제 세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오. 예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다. 입력 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. 출력 첫째 줄에는 A × B × C의 결과에 0 이 몇 번 쓰였는지 출력한다. 마찬가지로 둘째 줄부터 열 번째 줄까지 A × B × C의 결과에 1부터 9까지의 숫자가 각각.. 2021. 11. 7. 12:16
백준 1110 더하기 사이클 : while문 반복, 덧셈/나눗셈/몫과 나머지 로직 (Java) 문제 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 1. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 2. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다. N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오. .. 2021. 11. 6. 14:17
백준 11021 A+B 다른 방법으로 접근하기 - BufferedReader (Java) 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 각 테스트 케이스마다 A+B를 출력한다. 그런데 주의사항) Case #1: (A+B결과값) 꼴로 출력해야 한다 여기 와 똑같은 문제나 마찬가지지만 다른 방법으로 풀어보자 맨 첫줄 반복횟수 앞뒤로 'Case #' 과 '반복회차' 붙이는 건 전혀 어렵지 않고 이번에는 BufferedReader를 사용해서 다르게 접근했다. 실무에서도 DB i/o가 너무 많아지는 코드, 기본 프레임워크 사용하면 수행시간 너무 오래걸리는 무지막지 대용량 배치의 경우 BufferedReader를 사용해놓.. 2021. 11. 5. 21:44
백준 2753 윤년 판별 (Java) 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다. 입력 첫째 줄에 연도가 주어진다. 연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다. 출력 첫째 줄에 윤년이면 1, 아니면 0을 출력한다. import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scan.. 2021. 11. 5. 00:39
백준 2884 알람시계 (Java) "45분 일찍 알람 설정하기" 입력 첫째 줄에 두 정수 H와 M이 주어진다. (0 ≤ H ≤ 23, 0 ≤ M ≤ 59) 그리고 이것은 현재 상근이가 설정한 놓은 알람 시간 H시 M분을 의미한다. 입력 시간은 24시간 표현을 사용한다. 24시간 표현에서 하루의 시작은 0:0(자정)이고, 끝은 23:59(다음날 자정 1분 전)이다. 시간을 나타낼 때, 불필요한 0은 사용하지 않는다. 출력 첫째 줄에 상근이가 창영이의 방법을 사용할 때, 설정해야 하는 알람 시간을 출력한다. (입력과 같은 형태로 출력하면 된다.) 10:10 -> 9:25 0:30 -> 23:45 23:40 -> 22:55 import java.util.*; public class Main{ public static void main(Stri.. 2021. 11. 5. 00:30
백준 10950 A+B 주어진 개수만큼 반복 출력하기 (Java) 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 각 테스트 케이스마다 A+B를 출력한다. 각 테스트 케이스마다 가 중요한 포인트. import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int t = sc.nextInt(); int[] answer = new int[t]; //합 담을 사이즈만큼 배열 칸수 늘려놓기 for (int i = 0 ; i < t ; i++){ //사.. 2021. 11. 5. 00:23
백준 2588 곱셈 손계산 구현하기 (Java) (세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다. (1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오. 첫번째 수를 a, 두번째 수를 b라고 하면 b = 100x + 10y + z 꼴로 분해가 가능하다. 그리고 a*b = a * 100x + a * 10y + a * z 로 분리하여 생각할 수 있고, 문제의 의도는 (3) a*z (4) a*10y (5) a*100x (6) a*b (최종결과) 를 분리하여 출력하는 것에 있다. 두 정수 a, b 를 입력받았고 z = b % 10 385 % 10 하면 385를 10으로 나눈 나머지 5가 출력된다. y = b % 100 / 10 385 %100 하면 .. 2021. 11. 3. 23:19
백준 10171 고양이 출력하기 (Java) : 이스케이프 문자 https://www.acmicpc.net/problem/10171 10171번: 고양이 아래 예제와 같이 고양이를 출력하시오. www.acmicpc.net public class Main{ public static void main(String[] args){ System.out.println("\\ /\\"); System.out.println(" ) ( ')"); System.out.println("( / )"); System.out.println(" \\(__)|"); } } println하면 그다음 출력때 알아서 개행이 되고 \ 를 출력하려면 \\ 로 이스케이프 문자를 사용해야 한다는게 이 문제의 포인트 아 누가보면 비웃어도 할말은 없는데 나 정말 한번도 시험을 본 적이 없어서... 기초문제들만.. 2021. 10. 30. 21:31
728x90
반응형