일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Git
- 편스토랑
- 더현대서울 맛집
- Baekjoon
- gs25
- SW Expert Academy
- 맥북
- dacon
- 우분투
- programmers
- AI 경진대회
- 편스토랑 우승상품
- leetcode
- 데이콘
- Kaggle
- 자연어처리
- ubuntu
- 백준
- 캐치카페
- Docker
- 프로그래머스
- 파이썬
- 코로나19
- hackerrank
- ChatGPT
- 금융문자분석경진대회
- 프로그래머스 파이썬
- github
- Real or Not? NLP with Disaster Tweets
- PYTHON
- Today
- Total
목록
반응형
Baekjoon (592)
솜씨좋은장씨
코딩 1일 1문제! 오늘의 문제는 백준의 중간계 전쟁 입니다. 4435번: 중간계 전쟁 첫째 줄에 전투의 개수 T가 주어진다. 각 전투는 두 줄로 이루어져 있다. 첫째 줄에 간달프 군대에 참여한 종족의 수가 주어진다. 이 값은 공백으로 구분되어 있으며, 호빗, 인간, 엘프, 드워프, www.acmicpc.net 👨🏻💻 코드 ( Solution ) def gandalf_vs_sauron(battle): gandalf_soldier_score_info = [1, 2, 3, 3, 4, 10] sauron_soldier_score_info = [1, 2, 2, 2, 3, 5, 10] gandalf_soldier_list, sauron_soldier_list = battle[0], battle[1] gandal..
코딩 1일 1문제! 오늘의 문제는 백준의 와글와글 숭고한 입니다. 17388번: 와글와글 숭고한 첫 번째 줄에 숭실대학교의 참여도, 고려대학교의 참여도, 한양대학교의 참여도를 의미하는 세 자연수 S, K, H가 공백으로 구분되어 주어진다. (0 ≤ S, K, H ≤ 100) 세 대학의 참여도는 모두 다르다. www.acmicpc.net 👨🏻💻 코드 ( Solution ) def check_is_ok(S, K, H): is_ok = True if S + K + H < 100: is_ok = False return is_ok def find_min_min_participant(S, K, H): min_participant = "OK" is_ok = check_is_ok(S, K, H) if not is_o..
코딩 1일 1문제! 오늘의 문제는 백준의 대표값 2 입니다. 2587번: 대표값2 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + www.acmicpc.net 👨🏻💻 코드 ( Solution ) def representative_value_2(numbers): return (sum(numbers) // len(numbers)), sorted(numbers)[2] if __name__ == "__main__": numbers = [] for _ in range(5): numbers.append(int(input())) a..
코딩 1일 1문제! 오늘의 문제는 백준의 수학은 체육과목 입니다 2 입니다. 17362번: 수학은 체육과목 입니다 2 첫 번째 줄에 19번 문제 세 번째 줄에 등장하는 수 '1000'을 자연수 n으로 바꾸었을 때 그에 해당하는 답의 번호를 출력한다. 즉, 1 이상 5 이하의 자연수 중 하나를 출력해야 한다. www.acmicpc.net 👨🏻💻 코드 ( Solution ) def mathematics_is_a_physical_education_subject(n): finger_check = n % 8 if finger_check in {1}: answer = 1 elif finger_check in {0, 2}: answer = 2 elif finger_check in {3, 7}: answer = 3 ..
코딩 1일 1문제! 오늘의 문제는 백준의 성택이의 은밀한 비밀번호 입니다. 25372번: 성택이의 은밀한 비밀번호 부산사이버대학교 학생 성택이는 엄마의 의뢰를 받아 주어진 문자열이 현관문 비밀번호에 사용 가능한지 알아내야 한다. 성택이는 공부해야 하므로 우리가 도와주자! 사용할 수 있는 비밀번호 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def is_valid_password(password): is_valid = False if 5 < len(password) < 10: is_valid = True return is_valid def sungtak_secret_password(password): answer= "no" is_valid = is_valid_password(passw..
코딩 1일 1문제! 오늘의 문제는 백준의 짝수를 찾아라 입니다. 👨🏻💻 코드 ( Solution ) def find_even_number(numbers): even_numbers = [number for number in numbers if number % 2 == 0] return f"{sum(even_numbers)} {min(even_numbers)}" if __name__ == "__main__": N = int(input()) for _ in range(N): numbers = list(map(int, input().split())) print(find_even_number(numbers)) GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.0..
코딩 1일 1문제! 오늘의 문제는 백준의 팬들에게 둘러싸인 홍준입니다. 14581번: 팬들에게 둘러싸인 홍준 첫 번째 줄에 홍준의 아이디를 입력받는다. 홍준의 아이디는 길이가 20 이하인 문자열이며, 알파벳 소문자, 알파벳 대문자, 숫자로만 이루어졌다. www.acmicpc.net 👨🏻💻 코드 ( Solution ) def surrounded_by_fans(hongjoon): base = [[":fan:" for _ in range(3)] for _ in range(3)] base[1][1] = f":{hongjoon}:" answer = "\n".join(["".join(ans) for ans in base]) return answer if __name__ == "__main__": hongjoon ..
코딩 1일 1문제! 오늘의 문제는 백준의 동전 게임 입니다. 2684번: 동전 게임 동전게임은 주로 두 사람이 함께 즐기는 게임이다. 이 중 3-동전게임은 여러 명이 할 수 있는 게임이다. 각 사람은 각각 3-동전수열 중 하나를 선택한다. 3-동전수열이란 앞 뒤 앞과 같은 수열이 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def check_coin_case(case): check_list = [ "TTT", "TTH", "THT", "THH", "HTT", "HTH", "HHT", "HHH", ] check_result = [] for check in check_list: check_count = 0 for idx in range(len(case) - len(check) + 1):..
코딩 1일 1문제! 오늘의 문제는 UCPC에서 가장 쉬운 문제 번호는? 입니다. 25311번: UCPC에서 가장 쉬운 문제 번호는? 대회 참가자는 되도록 일찍 대회의 모든 문제를 한 번씩 읽어 보는 것이 권장됩니다. 이렇게 하면 대회의 전체적인 분위기를 느낄 수 있고, 종종 비교적 쉬운 문제를 빨리 발견해서 속도에서 우 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def easieat_problem_number_in_the_year_at_ucpc(year): problem_number = "A" if year == 2018 or year == 2019 or year == 2020 or year == 2021 or year == 2022: problem_number = "A" retu..
코딩 1일 1문제! 오늘의 문제는 백준의 Gnome Sequencing 입니다. 4589번: Gnome Sequencing In the book All Creatures of Mythology, gnomes are kind, bearded creatures, while goblins tend to be bossy and simple-minded. The goblins like to harass the gnomes by making them line up in groups of three, ordered by the length of their beards. The gnomes www.acmicpc.net 👨🏻💻 코드 ( Solution ) def gnomes_is_ordered_or_not(gnomes..
코딩 1일 1문제! 오늘의 문제는 백준의 Winning Score 입니다. 17009번: Winning Score The first three lines of input describe the scoring of the Apples, and the next three lines of input describe the scoring of the Bananas. For each team, the first line contains the number of successful 3-point shots, the second line contains the number of www.acmicpc.net 👨🏻💻 코드 ( Solution ) def calculate_basketball_score(score_list..
코딩 1일 1문제! 오늘의 문제는 백준의 코딩은 체육과목 입니다 입니다. 25314번: 코딩은 체육과목 입니다 오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++ www.acmicpc.net 👨🏻💻 코드 ( Solution ) def coding_is_a_physical_education_subject(N): answer = ["long"] * (N // 4) answer += ["int"] return " ".join(answer) if __name__ == "__main__": N = int(input()) print(coding_is_a_physical_ed..
코딩 1일 1문제! 오늘의 문제는 백준의 뜨거운 붕어빵 입니다. 11945번: 뜨거운 붕어빵 입력으로 주어지는 각 행을 반전시켜서 출력하면 됩니다. 입력의 1행 1열은 출력의 1행 M열로, 입력의 1행 2열은 출력의 1행 M-1열로 … 입력의 1행 M열은 출력의 1행 1열로 … 입력의 N행 M열은 출력 www.acmicpc.net 👨🏻💻 문제 풀이 입력받은 문자열을 뒤집어 출력하면 되는 문제였습니다. 문자열을 뒤집는데에는 [::-1] 방법을 활용하였습니다. 👨🏻💻 코드 ( Solution ) def hot_fish_bread(fish_bread): fish_bread = [bread_piece[::-1] for bread_piece in fish_bread] return fish_bread if __..
코딩 1일 1문제! 오늘의 문제는 백준의 펫 입니다. 1362번: 펫 당신은 게임으로 펫을 기르고 있습니다. 이 펫은 웃는 표정, 슬픈 표정을 가지고 있으며, 만약 죽는다면 '드러눕습니다.' 펫에게는 적정 체중이 있습니다. 펫의 실제 체중이 적정 체중의 1/2배를 www.acmicpc.net 👨🏻💻 코드 ( Solution ) class Pet: def __init__(self, o, w): self.proper_weight = o self.real_weight = w self.status = ":-(" def check_status(self): if self.proper_weight * 0.5 < self.real_weight < self.proper_weight * 2: self.status = "..
코딩 1일 1문제! 오늘의 문제는 백준의 이진수 덧셈 입니다. 2729번: 이진수 덧셈 이진수 덧셈은 매우 간단하고, 십진수 덧셈과 비슷하게 하면 된다. 십진수 덧셈을 할 때는, 오른쪽부터 왼쪽으로 차례대로 숫자 하나씩 더하면 된다. 이진수 덧셈도 이와 비슷하게 하면 된다. 십 www.acmicpc.net 👨🏻💻 문제 풀이 이진수를 입력 받아 이를 다시 정수로 바꾼 뒤에 int_a, int_b = int(bin_a, 2), int(bin_b, 2) 그 값을 합하고 answer = bin(int_a + int_b)[2:] 그 한한 값을 다시 이진수로 바꾸어주었습니다. answer_list.append(answer) 👨🏻💻 코드 ( Solution ) def bin_sum(N, bin_list): ans..
코딩 1일 1문제! 오늘의 문제는 희주의 수학시험 입니다. 8974번: 희주의 수학시험 강민이 동생 희주는 올해 초등학교에 입학했다. 며칠 있으면, 생애 첫 시험을 보게 될텐데, 수학시험도 같이 본다고 한다. 희주는 겁을 먹은 나머지, 열심히 준비해야겠다고 생각했다. 이를 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def heeju_math_test(A, B): number_list = [] number = 1 while True: if len(number_list) >= B: break number_list += [number] * number number += 1 return sum(number_list[A-1:B]) if __name__ == "__main__": A, B =..
코딩 1일 1문제! 오늘의 문제는 백준의 뉴비의 기준은 뭘까? 입니다. 19944번: 뉴비의 기준은 뭘까? 2020 INPC는 IGRUS 뉴비들을 위해 열리는 대회입니다. 하지만 영수 할아버지나 인용 할아버지와 같이 14학번이지만 마음만은 뉴비인 어르신들 때문에 대회장이 TLE들의 파티가 되자 뉴비의 기준을 정 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def newbie(N, M): answer = "TLE!" if M 2 and M
코딩 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문제! 오늘의 문제는 백준의 Equality 입니다. 13985번: Equality Print, on a single line, YES if the sum is correct; otherwise, print NO. www.acmicpc.net 👨🏻💻 코드 ( Solution ) def equality(string): answer = "NO" num1, operator, num2, equal_sign, num3 = string.split() if int(num1) + int(num2) == int(num3): answer = "YES" return answer if __name__ == "__main__": string = input() print(equality(string)) GitHub..
코딩 1일 1문제! 오늘의 문제는 백준의 점수계산 입니다. 2506번: 점수계산 OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기로 www.acmicpc.net 👨🏻💻 문제 풀이 이 문제는 연속적으로 답을 맞춘 경우를 고려하여 점수를 계산하는 문제입니다. 저는 이 문제를 문자열을 특정한 단어로 나누는 split 과 누적합을 구하는 itertools의 accumulate를 활용하여 문제를 풀었습니다. N = int(input()) score_list = input().split() 먼저 총 문제의 개수 N 과 문제를 맞췄는지 안맞췄는지 정보를 담은 문자열을 입력 받습..
코딩 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문제! 오늘의 문제는 백준의 네 번째 수 입니다. 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..