전체 글
-
[열 번째](문제 번호 : 2869, 달팽이는 올라가고 싶다) 도전백준 문제 풀이 2023. 8. 3. 22:03
1. 문제 요약 땅 위에 달팽이가 있다. 낮에는 나무를 A만큼 올라가고, 밤에는 B만큼 미끄러진다. 이때, V까지 도달하는데 걸린 D를 출력하면 된다. 예시. 입력 5 1 6 출력 2 2. 풀어보기 이 문제는 겉보기에는 쉬워보였다. 하지만 V의 최대 크기는 1000000000(10억)이다. 평범하게 while이나 for 반복문으로 하면 10억번의 반복문을 타야되어서, 시간초과가 발생한다. 예를 들어, 아래와 같은 코드.. A, B, V = map(int, input().split()) D = 0 while V > 0: D += 1 V -= A if V = 1000 일 경우, V//(A-B) - A = R이라 하고, V - (A-B)*R, D += R 하여 V의 크기를 대폭 줄인다. 2. 위의 일반적인 반..
-
[아홉 번째](문제 번호 : 2720, 세탁소 사장 동혁) 도전카테고리 없음 2023. 7. 27. 14:31
1. 문제 요약 첫째 줄에 테스트 케이스 T가 주어지고 다음 T줄 동안 금액(단위 센트)로 주어진다. 금액을 쿼터, 다임, 니켈, 페니로 (각각 25센트, 10센트, 5센트, 1센트) 분배한다. (단, 동전의 개수가 가장 적어야한다.) 각 테스트 케이스당 동전 개수를 순서대로 나열한다. 예시. 입력 3 124 25 194 출력 4 2 0 4 1 0 0 0 7 1 1 4 2. 풀어보기 1. T 입력받고 T번 for문 만들기 2. for문에서 금액 입력받고, 동전 개수가 가장 적어야하므로, 금액이 큰 쿼터부터 차례대로 최대한 배분함. (while 반복문을 통해), 프린트로 출력. 저번 문제에 비해 난이도가 상당히 쉬워진 것 같다.. 1. T 입력받고 T번 for문 만들기 T = int(input()) for..
-
[7일차](문제 번호 : 11005, 진법 변환 2) 도전 -1백준 문제 풀이 2023. 7. 24. 23:53
1. 문제 요약 10진법 수 N이 주어진다. N을 B진법 수로 변환하여 출력하면 된다. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다. A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35 예시. 입력 60466175 36 출력 ZZZZZ 2. 풀어보기 먼저, 오늘 글의 제목이 -1인 이유가 있다. 이 문제를 아직 해결하지 못했기 때문이다!!.. 학교 행사인지라 12시 이전에는 글을 올려야하는데, 10시 반쯤에 시작해서, 몇 십분동안 고민을 해봤지만, 오류는 피할 수 없었다. (심지어 오류의 원인도 찾지 못했다..) 따라서, 오류가 났지만 알고리즘 자체는 맞는 것 같기에.. 올려보도록 한다. 서론이 길었다. 이..
-
[6일차](문제 번호 : 2745, 진법 변환) 도전백준 문제 풀이 2023. 7. 23. 22:46
1. 문제 요약 첫째 줄에 B진법수 N이 주어진다. 이 N을 10진법으로 바꿔 출력하면 된다. N은 0~Z 까지로 이루어져있다. (A = 10, B = 11, ... , Z = 35) 예시. 입력 ZZZZZ 36 출력 60466175 2. 풀어보기 N의 각 자리 문자가 숫자라면 int 변환을 통해 계산하면 될 것이고, 알파벳이라면 ord()를 통해 숫자로 변환 하여 계산하면 될 것 같았다. 1. N, B 입력받고, 각 자리를 10진법으로 변환하여 합해서 넣을 변수 만들기 2. B 정수로 만들고, N에서 한 자리씩 가져와 위의 논리에 따른 변환 과정 거치기 3. 코드 1. N, B 입력받고, 각 자리를 10진법으로 변환하여 합해서 넣을 변수 만들기 N, B = input().split() base10 = ..
-
[5일차](문제 번호 : 2536, 색종이) 도전백준 문제 풀이 2023. 7. 22. 22:41
1. 문제 요약 100*100 도화지에 10*10 색종이를 여러 장 붙인다. (겹치게 붙일 수 있다.) 이때, 색종이가 차지하는 넓이를 구하는 프로그램을 구해야한다. 위와 같은 경우, 넓이는 260이다. 입력은 다음과 같다. 첫 줄 : 색종이 개수 다음 줄 : 색종이 위치 ( a, b ) ( a는 색종이의 왼쪽 변과 도화지의 왼쪽 변과의 거리, b는 색종이의 아래쪽 변과 도화지의 아래쪽 변과의 거리) 예시. 입력 3 3 7 15 7 5 2 출력 260 2. 풀어보기 100*100의 2차원 리스트를 만들어 0으로 채운 뒤, 입력을 통해 색종이가 차지하는 공간에 해당하는 위치를 1로 바꾸고, 1의 개수를 총 넓이로써 출력하면 될 것 같았다. 1. 색종이 개수 입력받기 2. 도화지 2차원 리스트 만들기 3. ..
-
[4일차](문제 번호 : 2566, 최댓값) 도전백준 문제 풀이 2023. 7. 21. 23:09
1. 문제 요약 9 by 9의 격자판에 81개의 자연수 또는 0이 주어진다. 이들 중 최댓값과 그 위치(행과 열)을 출력하면 된다. 최댓값이 두 개 이상이라면, 그들중 하나의 위치만을 출력하면 된다. 예시. 입력 3 23 85 34 17 74 25 52 65 10 7 39 42 88 52 14 72 63 87 42 18 78 53 45 18 84 53 34 28 64 85 12 16 75 36 55 21 77 45 35 28 75 90 76 1 25 87 65 15 28 11 37 28 74 65 27 75 41 7 89 78 64 39 47 47 70 45 23 65 3 41 44 87 13 82 38 31 12 29 29 80 출력 90 5 7 2. 풀어보기 1. 2차원 배열로 81개의 수를 입력받는..
-
[3일차](문제 번호 : 10798, 세로읽기) 도전백준 문제 풀이 2023. 7. 20. 10:35
1. 문제 요약 2차원 배열로 되어있는 문자들을 세로로 읽어 공백 없이 한 줄로 출력하는 것이 목표이다. 단, 가로 문자 개수는 15개를 넘지않고, 총 5열이다. 예시. 입력 AABCDD afzz 09121 a8EWg6 P5h3kx 출력 Aa0aPAf985Bz1EhCz2W3D1gkD6x 2. 풀어보기 먼저, 2차원 배열을 리스트에 저장하는 것은 많이 해봤기에 쉽게 할 수 있다. (리스트안에 리스트를 넣는 형식) 이 문제의 핵심은 세로로 읽을 때, 공백이 있다면 건너뛰고 다음 글자를 읽어야한다는 것이다. 그런데, 입력을 받을 때는 공백(띄어쓰기)가 없이 받아와지기에, 5개의 행중 최대 길이에 맞추어 지도록 공백을 강제로 추가해야한다. 따라서 다음과 같은 절차를 따랐다. 1) 2차원 배열 입력 받기. 2) ..