일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- programmers
- Docker
- 코로나19
- github
- 편스토랑 우승상품
- Real or Not? NLP with Disaster Tweets
- Git
- AI 경진대회
- 더현대서울 맛집
- 금융문자분석경진대회
- 우분투
- 데이콘
- ChatGPT
- 프로그래머스 파이썬
- SW Expert Academy
- PYTHON
- dacon
- hackerrank
- 편스토랑
- ubuntu
- Kaggle
- 맥북
- 프로그래머스
- Baekjoon
- 백준
- leetcode
- 자연어처리
- 캐치카페
- 파이썬
- gs25
- Today
- Total
목록
반응형
백준 (399)
솜씨좋은장씨
코딩 1일 1문제! 오늘의 문제는 백준의 최대공약수 입니다. 1850번: 최대공약수 모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오. 예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A www.acmicpc.net 👨🏻💻 문제 풀이 1로만 이루어진 수라고 하길래 이진수로 바꿔 푸는 문제인가? 싶어 그렇게 풀었었는데 알고보니 그냥 최대공약수를 구하고 이 값만큼 1을 쓰면 되는 문제였습니다. 👨🏻💻 코드 ( Solution ) def gcd(a, b): mod = a%b while mod > 0: a = b b = mod mod = a%b return b def greatest_common_..
코딩 1일 1문제! 오늘의 문제는 백준의 자동완성 입니다. 24883번: 자동완성 D2는 For Developers, By Developers의 약자로, 개발자들을 위해 개발자들이 직접 만들어 가고 있는 네이버 개발자 지원 프로그램입니다. 네이버가 축적한 기술과 지식을 공유하고, 외부 개발자들을 지원 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def autocomplete(alpha): answer = "Naver D2" if alpha not in {"N", "n"}: answer = "Naver Whale" return answer if __name__ == "__main__": alpha = input() print(autocomplete(alpha)) GitHub - SOM..
코딩 1일 1문제! 오늘의 문제는 백준의 영수증 입니다. 25304번: 영수증 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def calculate(value): return value[0] * value[1] def receipt(X, receipt_list): answer = "No" calculate_value = sum([calculate(value) for value in receipt_list]) if X == calculate_value: answer = "Yes" return answe..
코딩 1일 1문제! 오늘의 문제는 백준의 다음수 입니다. 4880번: 다음수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 수열의 연속하는 세 정수 a1, a2, a3이 한 줄에 주어진다. (-10,000 < a1, a2, a3 < 10,000) a1, a2, a3은 서로 같지 않다. 입력의 마지막 www.acmicpc.net 👨🏻💻 문제 풀이 입력 받은 숫자 리스트가 등차 수열이면 AP 와 함께 다음 수 등비 수열이면 GP 와 함께 다음 수 를 출력합니다. 각 숫자 사이의 비율이 같으면 등차 수열 그렇지 않으면 등비 수열로 판단하고 등차 수열일 경우 세번째 수 + 두번째 수 - 첫번째 수 등비 수열일 경우 세번째 수 + 두번째 수 // 첫번째 수 를 정답으로 합니다. 👨🏻💻 ..
코딩 1일 1문제! 오늘의 문제는 백준의 약수 구하기 입니다. 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net 👨🏻💻 코드 ( Solution ) def find_a_factor(N, K): answer = 0 cnt = 0 for num in range(1, N+1): if N % num == 0: cnt += 1 if cnt == K: answer = num break return answer if __name__ == "__main__": N, K = map(int, input().split()) print(find_a_factor(N, K)) GitHub - SOMJANG/..
코딩 1일 1문제! 오늘의 문제는 백준의 배수 찾기 입니다. 4504번: 배수 찾기 첫째 줄에 n이 주어진다. 다음 줄부터 한 줄에 한 개씩 목록에 들어있는 수가 주어진다. 이 수는 0보다 크고, 10,000보다 작다. 목록은 0으로 끝난다. www.acmicpc.net 👨🏻💻 코드 ( Solution ) def is_baesu(number, n): return number % n == 0 def find_baesu(number, n): if is_baesu(number, n): answer = f"{number} is a multiple of {n}." else: answer = f"{number} is NOT a multiple of {n}." return answer if __name__ == "..
코딩 1일 1문제! 오늘의 문제는 백준의 대표값 입니다. 2592번: 대표값 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30, 20, 60, 30, 40, 50의 평균은 www.acmicpc.net 👨🏻💻 문제 풀이 이 문제는 10개의 자연수가 주어졌을때 그 10개 숫자의 평균값과 가장 많이 등장하는 수 ( 최빈값) 를 구하는 문제입니다. 평균의 경우 def calcuate_avg_num(numbers): return sum(numbers) // len(numbers) 10개 숫자의 합을 10으로 나눈 값으로 구하였습니다. 최빈값의 경우 from collection..
코딩 1일 1문제! 오늘의 문제는 백준의 버그왕 입니다. 3447번: 버그왕 입력은 여러 줄의 소스 코드로 이루어져 있다. 이 소스 코드는 백준이가 작성한 버그를 찾는 프로그램으로 이미 처리가 되어있다. 각 줄은 100글자 이내이고, 입력은 파일이 끝날 때 끝난다. 줄의 www.acmicpc.net 👨🏻💻 코드 ( Solution ) import sys import re def remove_bug(code): while True: code = re.sub(r'BUG', '', code) if 'BUG' not in code: break return code def bug_king(code_lines): for code in code_lines: remove_bug_code = remove_bug(cod..
코딩 1일 1문제! 오늘의 문제는 백준의 피보나치 수 4 입니다. 10826번: 피보나치 수 4 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def fibo_4(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문제! 오늘의 문제는 백준의 치킨 두마리 (...) 입니다. 14489번: 치킨 두 마리 (...) 첫째 줄에 두 통장의 잔고 A와 B가 주어진다. (0 ≤ A, B ≤ 1,000,000,000) 둘째 줄에 치킨 한 마리의 가격 C가 주어진다. (0 ≤ C ≤ 1,000,000,001) www.acmicpc.net 👨🏻💻 문제 풀이 기본적으로 두 통장 잔고의 합을 정답으로 합니다. # A == 통장잔고 1 # B == 통장잔고 2 answer = A + B 거기서 만약 두 통장 잔고의 합이 치킨 두마리보다 많을 경우 치킨 두 마리 금액을 빼줍니다. if A + B >= C * 2: answer -= C * 2 👨🏻💻 코드 ( Solution ) def chicken(A, B, C): an..
코딩 1일 1문제! 오늘의 문제는 백준의 네 번째 수 입니다. 2997번: 네 번째 수 첫째 줄에 상근이가 고른 4개의 수 중 3개가 주어진다. 이 수는 크기 순이 아닐 수도 있고, -100보다 크거나 같고, 100보다 작거나 같은 정수이다. www.acmicpc.net 👨🏻💻 문제 풀이 1. 입력 받은 숫자 리스트를 정렬 합니다. sorted_numbers = sorted(numbers) 2. 정렬한 리스트에서 첫번째 숫자와 두번째 숫자의 차이 ( diff_1 ) 두번째 숫자와 세번째 숫자의 차이 ( diff_2 ) 를 구합니다. diff_1 = sorted_numbers[1] - sorted_numbers[0] diff_2 = sorted_numbers[2] - sorted_numbers[1] 3...
코딩 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문제! 오늘의 문제는 백준의 가희와 방어율 무시 입니다. 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문제! 오늘의 문제는 백준의 개수 세기 입니다. 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문제! 오늘의 문제는 백준의 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문제! 오늘의 문제는 백준의 오각형, 오각형, 오각형... 입니다. 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(..