일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 데이콘
- 캐치카페
- 우분투
- 더현대서울 맛집
- 편스토랑 우승상품
- Kaggle
- ubuntu
- Real or Not? NLP with Disaster Tweets
- 자연어처리
- 백준
- 프로그래머스
- hackerrank
- gs25
- 맥북
- Docker
- programmers
- ChatGPT
- leetcode
- AI 경진대회
- Baekjoon
- 금융문자분석경진대회
- 프로그래머스 파이썬
- 파이썬
- 코로나19
- Git
- github
- 편스토랑
- SW Expert Academy
- dacon
- PYTHON
- Today
- Total
목록
반응형
Programming/코딩 1일 1문제 (1013)
솜씨좋은장씨
코딩 1일 1문제! 오늘의 문제는 백준의 피보나치 수 5 입니다. 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def fibo_5(n): fibo_numbers = [0, 1, 1] if n > 2: for idx in range(n-2): new_fibo_num = fibo_numbers[idx+1] + fibo_numbers[idx+2] fibo_numbers.append(new_fibo_num) return fibo_numbe..
코딩 1일 1문제! 오늘의 문제는 쉽게 푸는 문제 입니다. 1292번: 쉽게 푸는 문제 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다. www.acmicpc.net 👨🏻💻 문제 풀이 먼저 수열을 만들어줍니다. 수열은 1 부터 리스트에 1, 2, 2, 3, 3, 3 이렇게 각 숫자만큼씩 추가하면서 그 수열의 길이가 B 보다 커지는 경우에 멈추도록 합니다. def make_number_list(start, end): number_list = [] number = 1 while True: if len(number_list) > end: break number_list += [number] *..
코딩 1일 1문제! 오늘의 문제는 백준의 거스름돈 입니다. 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 👨🏻💻 문제 풀이 change_list = [500, 100, 50, 10, 5, 1] 먼저 거스름돈으로 주고자하는 금액 목록을 큰 값 순서대로 리스트에 담은 리스트를 하나 만들어 줍니다. change = 1000 - money_to_pay 입력 받은 금액을 활용하여 내가 받는 거스름돈의 총 금액을 구합니다. change_idx = 0 # 거스름돈 금액 idx 0 ~ change_..
코딩 1일 1문제! 오늘의 문제는 백준의 가희와 방어율 무시 입니다. 25238번: 가희와 방어율 무시 메이플스토리 몬스터는 방어율 수치가 있습니다. 이 방어율 수치의 일정 %를 무시하는 것을 방무라고 합니다. 유저는 아이템을 사거나, 특정한 스킬 레벨을 올려서 방무 수치를 올릴 수 있습니 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def defense_rate(a, b): return a - a * b / 100 def is_lower_rate(d_rate): is_lower = 0 if d_rate < 100: is_lower = 1 return is_lower if __name__ == "__main__": a, b = map(int, input().split()) d_rat..
코딩 1일 1문제! 오늘의 문제는 백준의 무알콜 칵테일 입니다. 2896번: 무알콜 칵테일 첫째 줄에 구매한 오렌지, 사과, 파인애플 주스의 양 A, B, C가 주어진다. (1 ≤ A, B, C ≤ 500) 둘째 줄에 칵테일을 만드는데 필요한 각 주스의 비율 I, J, K가 주어진다. (1 ≤ I, J, K ≤ 50) www.acmicpc.net 👨🏻💻 코드 ( Solution ) def non_alcoholic_cocktail(orange, apple, pineapple, orange_ratio, apple_ratio, pineapple_ratio): min_ratio = min(orange / orange_ratio, apple / apple_ratio, pineapple / pineapple_ra..
코딩 1일 1문제! 오늘의 문제는 백준의 비밀번호 발음하기 입니다. 4659번: 비밀번호 발음하기 좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp www.acmicpc.net 👨🏻💻 코드 ( Solution ) import re def pronounce_the_password(password): condition1 = re.findall(r"a|e|i|o|u", password) condition2 = re.findall(r"([a|e|i|o|u]{3})|([^a|e|i|o|u]{3})",password) condition3 = re.findall(r"([a-..
코딩 1일 1문제! 오늘의 문제는 백준의 분수찾기 입니다. 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 👨🏻💻 문제풀이 입력 받은 X에서 1부터 1씩 증가시킨 값을 빼줍니다. 계속 값을 빼주다가 X 가 빼려는 값보다 작을 경우 멈춰줍니다. while X > line: X -= line line += 1 그러면 이때 빼려고 했던 값이 몇번째 라인인지를 판단할 수 있는 값 입니다. 그럼 그 값을 활용하여 분모가 될 값, 분자가 될 값 숫자 목록을 만들어 줍니다. 하나 목록은 1~라인 번호 / 하나는 라인번호~1 로 만들어줍니다. range_num_1 = list(range(1, line+1)) range_num_2 = range_num_..
코딩 1일 1문제! 오늘의 문제는 백준의 개수 세기 입니다. 10807번: 개수 세기 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거 www.acmicpc.net 👨🏻💻 문제풀이 1 방법 1 : collections 의 Counter 를 활용하여 풀기 numbers 를 collections 의 Counter를 활용하여 list 속 각 값들이 몇 개 씩 들어있는지 카운팅 -> 위의 과정을 거치고 나면 각 숫자별로 몇 개씩 있는지 Dictionary 형태로 나옴 만약 입력 받은 v 가 해당 Dictionary 에 키로 있는 값이면 카운팅한 값을 없다면 ..
코딩 1일 1문제! 오늘의 문제는 백준의 5의 수난 입니다. 23037번: 5의 수난 키파는 문득 3과 4의 견고한 벽에 가로막혀 스포트라이트를 받지 못하는 5를 떠올렸다. '세상에 얼마나 많은 것들이 5와 관련이 있는데!' 키파는 5가 쓰이는 곳을 떠올리기 시작했다. 사람의 손가 www.acmicpc.net 👨🏻💻 문제풀이 입력 받은 n을 문자열 상태에서 list 로 감싸 한글자 한글자로 된 리스트로 만든 다음 n = 12345 n_num_list = list(n) # n_num_list = [ '1', '2', '3', '4', '5' ] 각 n을 정수로 바꾸고 이를 pow 를 활용하여 5제곱 값으로 만듭니다. 그리고 그 값들을 모두 더하면! 정답! 👨🏻💻 코드 ( Solution ) def fi..
코딩 1일 1문제! 오늘의 문제는 백준의 운동장 한 바퀴 입니다. 16486번: 운동장 한 바퀴 첫째 줄에 d1의 값이 주어진다. 둘째 줄에는 d2의 값이 주어진다. (d1, d2의 값은 100,000 이하의 양의 정수) www.acmicpc.net 👨🏻💻 문제풀이 가로길이 ( d1 ) x 2 와 주어진 원의 반지름 x 2 x 원주율 한 값을 더한 값을 정답으로 합니다. 👨🏻💻 코드 ( Solution ) def play_ground(d1, d2): return round((3.141592 * 2 * d2 ) + (2 * d1), 6) if __name__ == "__main__": d1 = int(input()) d2 = int(input()) print(play_ground(d1, d2)) Git..
코딩 1일 1문제! 오늘의 문제는 백준의 나는 행복합니다~ 입니다. 14652번: 나는 행복합니다~ 첫째 줄에 관중석의 크기를 나타내는 N, M과 잃어버린 관중석 번호를 나타내는 K가 주어진다. (1 ≤ N, M ≤ 30,000, 0 ≤ K ≤ N×M-1) www.acmicpc.net 👨🏻💻 문제풀이 N과 M 그리고 K 가 주어졌을때 N X M 사이의 숫자 중에 어느 위치 ( 좌표 ) 에 K 가 있는지 찾는 문제입니다. 이 문제는 배열의 find를 활용하여 문제를 풀려고 하면 시간초과가 발생합니다. 저 숫자들이 배열되어있는 규칙을 찾으면! 시간초과 없이 아주 간단하게 풀 수 있습니다. i + j * M = K K 는 위와 같은 공식으로 구해지게 됩니다. 여기서 우리가 구해야하는 값은 i와 j 이므로 i..
코딩 1일 1문제! 오늘의 문제는 백준의 Rats 입니다. 18301번: Rats To celebrate the Lunar New Year of the Rat, Douglas decides to count the number of rats living in his area. It is impossible for him to find all rats, as they tend to be well hidden. However, on the first day of the new year, Douglas manages to capture n1 www.acmicpc.net 👨🏻💻 문제풀이 n1, n2, n12 를 입력 받으면 N := ⌊(n1 + 1)(n2 + 1)/(n12 + 1) - 1⌋ 를 구한다음 이를 i..
코딩 1일 1문제! 오늘의 문제는 백준의 감정이입입니다. 14623번: 감정이입 첫 번째 줄에 입력으로 주어진 두 이진수 B1, B2의 곱을 이진수로 출력한다. 출력하는 이진수 앞에 불필요한 0이 붙으면 안 됨에 주의해야 한다. 즉 출력하는 이진수의 시작은 항상 1이어야 한다. www.acmicpc.net 👨🏻💻 문제풀이 bin과 int를 활용하여 이진수를 정수로 바꾼다음 바꾼 정수끼리 곱한 값을 다시 이진수로 바꾸었습니다. 👨🏻💻 코드 ( Solution ) def bin_to_num(binary): return int(binary, 2) def num_to_bin(num): return bin(num)[2:] def empathy(B1, B2): num_b1 = bin_to_num(binary=B..
코딩 1일 1문제! 오늘의 문제는 백준의 숫자 놀이 입니다. 2145번: 숫자 놀이 각 줄에 숫자 N이 주어진다. N은 100,000보다 작은 양의 정수이다. 마지막 입력은 0이며, 0에 대한 결과는 출력하지 않는다. www.acmicpc.net 👨🏻💻 문제 풀이 문자열을 list로 만든 다음 -> map을 활용하여 정수 리스트로 바꿉니다. 이를 sum으로 저장하면! 모든 자리수의 값을 더하는 것이 됩니다. 이렇게 계속 number를 갱신하다가 그 길이가 1이 되는 순간의 값을 정답으로 합니다. 👨🏻💻 코드 ( Solution ) def number_play(number): while True: if len(number) == 1: break number = str(sum(list(map(int, l..
코딩 1일 1문제! 오늘의 문제는 백준의 수 뒤집기 입니다. 3062번: 수 뒤집기 수 124를 뒤집으면 421이 되고 이 두 수를 합하면 545가 된다. 124와 같이 원래 수와 뒤집은 수를 합한 수가 좌우 대칭이 되는지 테스트 하는 프로그램을 작성하시오. www.acmicpc.net 👨🏻💻 문제 풀이 수를 뒤집는데에는 문자열에 [::-1]를 붙여 변환하는 방식을 사용했습니다. 기존 수에 뒤집은 수를 더한 값이 거꾸로 읽어도 같을 때 YES 다를때 NO를 정답으로 합니다. 👨🏻💻 코드 ( Solution ) def reverse_number(number): return int(str(number)[::-1]) def is_symmetry(number): return str(number) == str..
코딩 1일 1문제! 오늘의 문제는 백준의 이칙연산 입니다. 15726번: 이칙연산 첫째 줄에 세 개 정수 A, B, C(1 ≤ A, B, C ≤ 1,000,000)가 주어진다. 답은 int범위를 벗어나지 않는다. www.acmicpc.net 👨🏻💻 문제 풀이 * 이 앞에오고 / 가 뒤에오는 경우 /가 앞에오고 * 가 뒤에오는 경우 이 두가지 경우의 결과를 모두 구한 다음 그 중 더 큰 값을 활용합니다. 단! 소수점 아래 자리를 모두 버린다고 하였기에 int 로 변환한 값을 정답으로 합니다. 👨🏻💻 코드 ( Solution ) def case1(numbers): return int(numbers[0] * numbers[1] / numbers[2]) def case2(numbers): return int..
코딩 1일 1문제! 오늘의 문제는 백준의 Cupcake Party 입니다. 24568번: Cupcake Party A regular box of cupcakes holds 8 cupcakes, while a small box holds 3 cupcakes. There are 28 students in a class and a total of at least 28 cupcakes. Your job is to determine how many cupcakes will be left over if each student gets one cupcake. www.acmicpc.net 👨🏻💻 문제 풀이 입력받은 상자의 개수 각 상자마다 들어있는 컵케이크의 개수를 활용하여 전체 컵케이크 개수 구하기 28명에게 나누..
코딩 1일 1문제! 오늘의 문제는 백준의 Bottle Return 입니다. 21300번: Bottle Return In the United States, beverage container deposit laws, or so-called bottle bills, are designed to reduce litter and reclaim bottles, cans and other containers for recycling. Ten states currently have some sort of deposit-refund systems in place for differe www.acmicpc.net 👨🏻💻 코드 ( Solution ) def caculate_money(bottle_num, fee): ret..
코딩 1일 1문제! 오늘의 문제는 백준의 Site Score 입니다. 20254번: Site Score Teams from variaous universities compete in ICPC regional contests for tickets to the ICPC World Finals. The number of tickets allocated to every regional contest may be different. The allocation method in our super region, Asia Pacific, is based on a para www.acmicpc.net 👨🏻💻 코드 ( Solution ) def site_score(numbers): site_num = [56, 24, 1..
코딩 1일 1문제! 오늘의 문제는 백준의 Football Scoring 입니다. 24736번: Football Scoring There are two lines of input each containing five space-separated non-negative integers, T, F, S, P and C representing the number of Touchdowns, Field goals, Safeties, Points-after-touchdown and two-point Conversions after touchdown respectively. (0 ≤ T www.acmicpc.net 👨🏻💻 코드 ( Solution ) def calculate_score(team_score, score..
코딩 1일 1문제! 오늘의 문제는 백준의 오각형, 오각형, 오각형... 입니다. 1964번: 오각형, 오각형, 오각형… 첫째 줄에 N(1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 👨🏻💻 문제 풀이 규칙을 알면 쉽게 풀 수 있는 문제입니다. 오각형이 하나 늘어날때마다 4 + 3 * (i + 1) 개씩 점이 늘어나는 점을 활용하여 문제를 풀었습니다. 👨🏻💻 코드 ( Solution ) def pentagon_pentagon_pentagon(N): answer = 5 for i in range(N-1): answer += (4 + (i + 1) * 3) return answer % 45678 if __name__ == "__main__": N = int(input()) pr..
코딩 1일 1문제! 오늘의 문제는 백준의 헛간 청약 입니다. 19698번: 헛간 청약 $1 \le N, W, H, L \le 1,000$ www.acmicpc.net 👨🏻💻 문제 풀이 가로에 몇마리 세로에 소가 몇마리 씩 들어가는지 구한 다음 가로에 들어가는 소의 마리수 X 세로에 들어가는 소의 마리수 만큼을 정답으로 하면 됩니다. 만약 구한 수가 내가 소유한 소의 수보다 크다면 내가 소유한 소의 수 만큼을 정답으로 합니다. 👨🏻💻 코드 ( Solution ) def barn_subscription(N, W, H, L): answer = N width_cow = W // L height_cow = H // L cow_num = width_cow * height_cow if cow_num < N: an..
코딩 1일 1문제! 오늘의 문제는 백준의 Multiply 입니다. 22193번: Multiply Write a program that computes a product of two non-negative integers A and B. The integers are represented in decimal notation and have N and M digits, respectively. www.acmicpc.net 👨🏻💻 코드 ( Solution ) def multiply(A, B): return A * B if __name__ == "__main__": N, M = map(int, input().split()) A = int(input()) B = int(input()) print(multiply..
코딩 1일 1문제! 오늘의 문제는 백준의 계산기 프로그램 입니다. 5613번: 계산기 프로그램 입력의 각 줄에는 숫자와 +, -, *, /, =중 하나가 교대로 주어진다. 첫 번째 줄은 수이다. 연산자의 우선 순위는 생각하지 않으며, 입력 순서대로 계산을 하고, =가 주어지면, 그때까지의 결과를 출 www.acmicpc.net 👨🏻💻 문제 풀이 더하기 빼기 곱하기 나누기를 사칙연산을 지켜가면서 풀어야하는 줄 알고 python의 eval을 활용하여 풀었다가 입출력 예시 넣어 풀어보니 그냥 나온 연산자 순서대로 풀면 되는 문제였습니다. 전체 코드는 아래를 참고해주세요. 👨🏻💻 코드 ( Solution ) def calculate_program(num_and_operator): for i in range(..
코딩 1일 1문제! 오늘의 문제는 백준의 피보나치 수 입니다. 4150번: 피보나치 수 피보나치 수열은 다음과 같이 그 전 두 항의 합으로 계산되는 수열이다. 첫 두 항은 1로 정의된다. f(1) = 1, f(2) = 1, f(n > 2) = f(n − 1) + f(n − 2) 정수를 입력받아, 그에 해당하는 피보나치 수를 출력 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def fibo_num(N): fibo_num_list = [0, 1] for i in range(N-1): fibo_num_list.append(fibo_num_list[i]+fibo_num_list[i+1]) return fibo_num_list[N] if __name__ == "__main__": N = in..
코딩 1일 1문제! 오늘의 문제는 백준의 The Worlds Responds 입니다. 23234번: The World Responds In many introductory computer programming classes, the first program that students learn to write just prints “Hello, world!” It is used as a first assignment because it is a simple program that produces output. The program dates back to at least 1974, www.acmicpc.net 👨🏻💻 코드 ( Solution ) def the_world_responds(): return ..
코딩 1일 1문제! 오늘의 문제는 백준의 핸드폰 요금 입니다. 1267번: 핸드폰 요금 동호가 저번 달에 이용한 통화의 개수 N이 주어진다. N은 20보다 작거나 같은 자연수이다. 둘째 줄에 통화 시간 N개가 주어진다. 통화 시간은 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 👨🏻💻 코드 ( Solution ) def minsik_plan(call_time): fee = 0 if call_time < 60: fee = 15 elif 60
코딩 1일 1문제! 오늘의 문제는 백준의 페이지 세기 입니다. 4821번: 페이지 세기 워드, 한글, 메모장과 같은 워드 프로세서에서 인쇄를 할 때, 페이지 범위를 직접 입력하여 지정할 수 있다. 예를 들면, 다음과 같이 입력할 수 있다. 10-15,25-28,8-4,13-20,9,8-8 사용자는 위처럼 인쇄 www.acmicpc.net 👨🏻💻 문제 풀이 쉬워보여서 풀기 시작했는데 대충 풀었더니 IndexError 가 자꾸 발생했던 문제입니다. IndexError는 주어지는 페이지가 책의 전체 페이지보다 더 큰 수가 주어지는 것에 대해서 예외 처리가 제대로 되지 않았기 때문에 발생했습니다. 문제를 풀면서 계속 IndexError가 발생한다면 - 내가 현재 참조하는 리스트보다 큰 값을 인덱스 값으로 쓰고..
코딩 1일 1문제! 오늘의 문제는 백준의 연세대학교 입니다. 15680번: 연세대학교 연세대학교의 영문명은 YONSEI, 슬로건은 Leading the Way to the Future이다. 이를 출력하는 프로그램을 작성해보도록 하자. www.acmicpc.net 👨🏻💻 코드 ( Solution ) def yonsei_university(N): return "YONSEI" if N == 0 else "Leading the Way to the Future" if __name__ == "__main__": N = int(input()) print(yonsei_university(N)) GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07 1일 1문제 ..
코딩 1일 1문제! 오늘의 문제는 백준의 팀 나누기 입니다. 13866번: 팀 나누기 입력은 네 개의 정수 A, B, C 및 D가 포함된 한 줄로 구성되며 4명의 스킬 레벨이 주어진다. (0 ≤ A ≤ B ≤ C ≤ D ≤ 104) www.acmicpc.net 👨🏻💻 코드 ( Solution ) def split_the_team(skill_level): skill_level = sorted(skill_level) team1 = skill_level[0] + skill_level[3] team2 = skill_level[1] + skill_level[2] return abs(team1 - team2) if __name__ == "__main__": skill_level = list(map(int, inp..