일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Baekjoon
- ChatGPT
- AI 경진대회
- 캐치카페
- dacon
- 맥북
- github
- 데이콘
- 금융문자분석경진대회
- Docker
- leetcode
- 편스토랑
- SW Expert Academy
- 편스토랑 우승상품
- gs25
- 프로그래머스 파이썬
- ubuntu
- 프로그래머스
- 우분투
- 파이썬
- 백준
- 더현대서울 맛집
- hackerrank
- Kaggle
- Real or Not? NLP with Disaster Tweets
- 코로나19
- 자연어처리
- Git
- programmers
- PYTHON
- Today
- Total
목록
반응형
백준 (399)
솜씨좋은장씨
코딩 1일 1문제 오늘의 문제는 백준의 세수정렬입니다. 2752번: 세수정렬 숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다. www.acmicpc.net 👨🏻💻 코드 ( Solution ) def order_three_numbers(numbers): return " ".join(map(str, sorted(numbers))) if __name__ == "__main__": numbers = list(map(int, input().split())) print(order_three_numbers(numbers)) GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07 1일 1문제 s..
코딩 1일 1문제! 오늘의 문제는 백준의 구간 합 구하기 4 입니다. 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 👨🏻💻 문제 풀이 엄청 쉬워보여서 빨리 풀고 다른 남은 작업을 진행해보려고 했는데 생각보다 시간초과 문제 때문에 너무 오랜 시간 풀었던 문제 입니다. def get_div_sum_4(numbers, i, j): return sum(numbers[i-1:j]) if __name__ == "__main__": numbers_len, loop_num = map(int, inp..
코딩 1일 1문제! 오늘의 문제는 백준의 A+B - 5 입니다. 10952번: A+B - 5 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 👨🏻💻 코드 ( Solution ) def a_plus_b_5(num1, num2): return num1 + num2 if __name__ == "__main__": while True: num1, num2 = map(int, input().split()) if num1 == 0 and num2 == 0: break print(a_plus_b_5(num1, num2)) GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07 1일 1문제 since 20..
코딩 1일 1문제! 오늘의 문제는 백준의 보물 입니다. 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def treasure(A, B): answer = 0 check_list = [] for i in range(len(B)): check_list.append((i, B[i])) sorted_A = sorted(A) sorted_B = sorted(check_list, key=lambda x: -x[1]) index_list = [idx[0] for idx in ..
코딩 1일 1문제! 오늘의 문제는 백준의 나는 요리사다 입니다. 2953번: 나는 요리사다 "나는 요리사다"는 다섯 참가자들이 서로의 요리 실력을 뽐내는 티비 프로이다. 각 참가자는 자신있는 음식을 하나씩 만들어오고, 서로 다른 사람의 음식을 점수로 평가해준다. 점수는 1점부터 5 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def i_am_chef(score_list): rank_dict = {} for idx in range(len(score_list)): rank_dict[idx+1] = sum(score_list[idx]) sorted_rank = sorted(rank_dict.items(), key=lambda x: -x[1]) winner = sorted_rank[0] r..
코딩 1일 1문제! 오늘의 문제는 백준의 영수증 입니다. 5565번: 영수증 첫째 줄에 10권의 총 가격이 주어진다. 둘째 줄부터 9개 줄에는 가격을 읽을 수 있는 책 9권의 가격이 주어진다. 책의 가격은 10,000이하인 양의 정수이다. www.acmicpc.net 👨🏻💻 코드 ( Solution ) def bill(total_price, book_price_list): return total_price - sum(book_price_list) if __name__ == "__main__": total_price = int(input()) book_price_list = [] for _ in range(9): book_price = int(input()) book_price_list.append(bo..
코딩 1일 1문제! 오늘의 문제는 백준의 한다 안한다 입니다. 5789번: 한다 안한다 첫째 줄에는 테스트 케이스의 개수 N이 주어진다. (1 ≤ N ≤ 1000) 각 테스트 케이스는 한 줄로 이루어져 있으며, 0과 1로 이루어진 문자열이 주어진다. 문자열의 길이는 항상 짝수이고, 1000보다 작 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def handa_anhanda(numbers): answer = 'Do-it' loop_num = len(numbers) // 2 for i in range(loop_num): if numbers[i] != numbers[len(numbers) - i - 1]: answer = 'Do-it-Not' else: answer = 'Do-it' re..
코딩 1일 1문제! 오늘의 문제는 백준의 소음입니다. 2935번: 소음 수업 시간에 떠드는 두 학생이 있다. 두 학생은 수업에 집중하는 대신에 글로벌 경제 위기에 대해서 토론하고 있었다. 토론이 점점 과열되면서 두 학생은 목소리를 높였고, 결국 선생님은 크게 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def noise(A, operator, B): answer = 0 if operator == "*": answer = A * B elif operator == "+": answer = A + B return answer if __name__ == "__main__": A = int(input()) operator = input() B = int(input()) print(noise(..
코딩 1일 1문제! 오늘의 문제는 백준의 음계입니다. 2920번: 음계 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def scale(numbers): answer = "mixed" start_num, end_num = min(numbers), max(numbers) if list(range(start_num, end_num + 1)) == numbers: answer = "ascending" elif list(range(end_num, star..
코딩 1일 1문제! 오늘의 문제는 백준의 손익분기점 입니다. 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 👨🏻💻 문제 풀이 고정비용, 가변비용, 제품의 가격을 알려 주었을 때 손익분기점을 구하는 문제입니다. 손익분기점 = 총 고정비용 / ( 가격 - 가변비용 ) 위의 공식을 활용하여 문제를 풀었습니다. fixed_cost, variable_cost, price = map(int, input().split()) 먼저 고정비용, 가변비용, 제품의 가격을 입력 받습니다. break_even_point_num = f..
오늘은! 생일을 맞아! 코딩 1일 1문제! 백준의 생일을 풀어보았습니다. 5635번: 생일 어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오. www.acmicpc.net 👨🏻💻 문제 풀이 이름, 일, 월, 년도 목록을 쭉 입력 받으면 그 목록 중에서 가장 어린 사람, 가장 나이든 사람의 이름을 차례대로 출력하는 문제입니다. 이 문제는 datetime을 활용하면 정말정말 쉽게 풀 수 있습니다. birthday_infos = [] for _ in range(int(input())): birthday_info = input().split() birthday_infos.append(birthday_info) 먼저 예제 입력을 보고 이름, 일..
코딩 1일 1문제! 오늘의 문제는 백준의 일곱 난쟁이 입니다. 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 👨🏻💻 코드 ( Solution ) from itertools import combinations def seven_dwarfs(dwarfs): check_list = [comb for comb in list(combinations(dwarfs, 7)) if sum(comb) == 100] return sorted(check_list[0]) if __name__ == "__main__": dwarfs = [..
코딩 1일 1문제! 오늘의 문제는 백준의 16진수 입니다. 1550번: 16진수 첫째 줄에 16진수 수가 주어진다. 이 수의 최대 길이는 6글자이다. 16진수 수는 0~9와 A~F로 이루어져 있고, A~F는 10~15를 뜻한다. 또, 이 수는 음이 아닌 정수이다. www.acmicpc.net 👨🏻💻 코드 ( Solution ) def convert_16_to_10(num): return int(num, 16) if __name__ == '__main__': num = input() print(convert_16_to_10(num)) GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07 1일 1문제 since 2020.02.07. Contribut..
코딩 1일 1문제! 오늘의 문제는 백준의 10936번 BASE64 디코딩 입니다. 10936번: BASE64 디코딩 첫째 줄에 문자열 S를 BASE64로 인코딩한 결과가 주어진다. S는 알파벳 대문자와 소문자, 그리고 숫자로만 이루어져 있으며, 길이는 최대 50이다. www.acmicpc.net 👨🏻💻 코드 ( Solution ) import base64 def base64_decoding(base64_string): return str(base64.b64decode(base64_string.encode('ascii')))[2:-1] if __name__ == "__main__": base64_string = input() print(base64_decoding(base64_string)) GitHub..
코딩 1일 1문제! 오늘의 문제는 백준의 BASE64 인코딩 입니다. 10935번: BASE64 인코딩 첫째 줄에 문자열 S가 주어진다. S는 알파벳 대문자와 소문자, 그리고 숫자로만 이루어져 있으며, 길이는 최대 50이다. www.acmicpc.net 👨🏻💻 코드 ( Solution ) import base64 def base64_encoding(string): return str(base64.b64encode(string.encode('ascii')))[2:-1] if __name__ == "__main__": string = input() print(base64_encoding(string)) GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02..
코딩 1일 1문제! 오늘의 문제는 백준의 A+B - 3 입니다. 10950번: A+B - 3 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 👨🏻💻 코드 ( Solution ) def A_PLUS_B_3(nums): num1, num2 = map(int, nums.split()) return num1 + num2 if __name__ == "__main__": for _ in range(int(input())): num = input() print(A_PLUS_B_3(num)) GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07 1일 1문제 since 2020.02.07. Contribu..
코딩 1일 1문제! 오늘의 문제는 백준의 과자 입니다. 10156번: 과자 첫 번째 줄에는 과자 한 개의 가격 K, 사려고 하는 과자의 개수 N, 현재 동수가 가진 돈 M이 각각 공백을 사이에 두고 주어진다. 단, K, N은 1,000 이하의 양의 정수이고, M은 10만 이하의 양의 정수이 www.acmicpc.net 👨🏻💻 문제 풀이 이 문제는 내가 가지고 있는 돈으로 과자를 사려할 때 필요한 금액을 구하는 문제입니다. K, N, M = map(int, input().split()) 과자 한 개의 가격이 K / 사려고 하는 과자의 개수가 N / 현재 가진 돈의 액수를 M 으로 입력 받습니다. more_money = K * N - M 내가 더 필요한 금액은 과자 한 개의 가격 K x 사려고 하는 과자의..
코딩 1일 1문제! 오늘의 문제는 백준 10951번 A+B - 4 입니다. 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 👨🏻💻 문제 풀이 입력 부분에서 EOFError를 사용하여 마지막 입력인지 아닌지를 판단하여 풀면됩니다. 👨🏻💻 코드 ( Solution ) def a_plus_b_4(num1, num2): return num1 + num2 if __name__ == "__main__": while True: try: num1, num2 = map(int, input().split()) print(a_plus_b_4(num1, num2)) except EOFError: break GitHub - SOMJANG/..
👨🏻💻 코드 ( Solution ) import sys def make_answer(answer, check_dict, temp): try: check = check_dict[temp] temp = "" answer.append("1") except: answer.append("0") temp = "" return answer, temp def number_card(my_numbers, check_numbers): answer = [] check_dict = {} temp = "" for num in my_numbers: if num.isdigit() or num == "-": temp += num elif num == " ": check_dict[temp] = 0 temp = "" check_dict..
코딩 1일 1문제! 오늘의 문제는! 백준의 10부제입니다. 10797번: 10부제 서울시는 6월 1일부터 교통 혼잡을 막기 위해서 자동차 10부제를 시행한다. 자동차 10부제는 자동차 번호의 일의 자리 숫자와 날짜의 일의 자리 숫자가 일치하면 해당 자동차의 운행을 금지하는 www.acmicpc.net 👨🏻💻 문제 풀이 자동차 10부제는 자동차 번호의 일의 자리 숫자와 날짜의 일의 자리 숫자가 일치하면 해당 자동차의 운행을 금지하는 제도입니다. violate_num = input() car_numbers = input() 예제 입력을 보면 먼저 날짜의 일의 자리숫자가 입력되고 그 다음 줄에 자동차 번호를 공백을 기준으로 이어 붙은 형태의 문자열로 입력 받습니다. answer = 0 car_numbers ..
코딩 1일 1문제! 오늘의 문제는 백준 15719번 중복된 숫자입니다. 2달 전 부터 시도하였다가 메모리초과, 시간초과, 런타임에러에 시달리다 오늘 드디어 풀게 된 문제입니다. 15719번: 중복된 숫자 1부터 N - 1까지의 정수가 하나씩 정렬되지 않은 채로 저장되어 있는 어떤 수열 A가 있다. 수열 A에 임의의 정수 M(1 ≤ M ≤ N – 1)을 넣어 크기가 N인 수열로 만들었을 때, 임의의 정수 M을 찾는 프 www.acmicpc.net 👨🏻💻 문제 풀이 처음에는 엄청 쉽다고 생각한 문제여서 시도한 문제인데 첫째 줄에 주어지는 수열의 크기 N(2 ≤ N ≤ 10,000,000)의 최대 크기인 천만은 생각보다 큰 숫자였습니다. split을 하여 리스트로 만들면 메모리 초과 그냥 반복문을 돌면서 값..
코딩 1일 1문제! 오늘의 문제는 백준의 팬그램입니다. 5704번: 팬그램 입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 많아야 200글자로 이루어져 있는 문장이다. 단어는 공백 하나로 구분되어 있다. 또, 단어는 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 👨🏻💻 문제 풀이 a부터 z까지 모든 알파벳을 활용하여 만들어진 문자열을 팬그램 문자열이라고 합니다. 이 문제는 문자열을 하나 입력받으면 팬그램인지 아닌지를 파악하는 문제입니다. while True: string = input() if string == "*": break 예제입력을 활용하여 입력하는 부분을 먼저 작성합니다. "*" 이 입력될때까지 계속 입력 받도록 while 반복문 안에 넣어줍니다. answer..
코딩 1일 1문제! 오늘의 문제는 백준의 배열 합치기 입니다. 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net 👨🏻💻 문제 풀이 먼저 예제 입력을 보고 입력값을 받는 코드를 작성합니다. _ = input() array1 = input() array2 = input() 입력 받는 배열의 값들이 공백을 사이에두고 연결된 형태의 문자열이므로 array1 = array1.split() array2 = array2.split() 배열로 바꾸기 위해서는 split을 활용하여 공백을 기..
코딩 1일 1문제! 오늘의 문제는 백준의 블랙잭 입니다. 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 👨🏻💻 문제 풀이 블랙잭은 3개의 카드 숫자의 합을 최대한 21에 가까운 숫자로 만드는 사람이 이기는 게임입니다. 그런데 이 문제에서의 블랙잭 게임은 새로운 룰을 만들어서 진행합니다. 3개의 카드 숫자의 합을 보는 것은 맞는데 그 수를 21에 가까운 숫자로 만드는게 아니라 입력받은 M이라는 숫자에 최대한 가까우면서도 M을 넘지 않는 수를 만드는게 목표입니다. combina..
코딩 1일 1문제! 오늘의 문제는 백준의 2진수 뒤집기 입니다. 11179번: 2진수 뒤집기 희연이는 스웨덴으로 이사하여 현재 학교를 다니고 있다. 1학년 교육과정은 중국에서 배웠고, 스웨덴과 중국 두 나라의 교육과정은 완전히 다르다. 희연이는 수학을 좋아한다. 하지만 지금은. www.acmicpc.net 👨🏻💻 문제 풀이 숫자를 하나 입력 받으면 이를 2진수로 바꾸고 그 값을 뒤집은 값을 다시 10진수로 바꾸어 출력하는 문제입니다. Python의 10진수 -> 2진수 변환 함수인 bin과 2진수 -> 10진수 가 가능한 int를 활용하면 쉽게 문제를 풀 수 있습니다. number = int(input()) 먼저 숫자를 하나 입력 받습니다. binary_num = bin(number)[2:] 입력 받은..
코딩 1일 1문제! 오늘의 문제는 백준의 단어순서 뒤집기 입니다. 12605번: 단어순서 뒤집기 스페이스로 띄어쓰기 된 단어들의 리스트가 주어질때, 단어들을 반대 순서로 뒤집어라. 각 라인은 w개의 영단어로 이루어져 있으며, 총 L개의 알파벳을 가진다. 각 행은 알파벳과 스페이스로만 www.acmicpc.net 👨🏻💻 문제 풀이 먼저 공백을 기준으로 나열되어있는 단어 목록을 split으로 나누어 단어 리스트로 만들어줍니다. word_list = word_list.split() [::-1] 을 활용하여 단어의 순서를 거꾸로 뒤집습니다. word_list = word_list[::-1] 이제 거꾸로 돌렸으면 join을 활용하여 다시 단어 리스트를 문자열로 만들어줍니다. answer = " ".join(wo..
코딩 1일 1문제! 오늘의 문제는 백준 3449번 해밍 거리 입니다. 3449번: 해밍 거리 입력을 여러 개의 테스트 케이스로 이루어져 있다. 첫째 줄에는 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 두 줄로 이루어져 있다. 각 줄에는 이진수가 하나씩 주어진다. 두 이진 www.acmicpc.net 👨🏻💻 문제 풀이 해밍 거리는 같은 길이의 두 문자열에서, 같은 위치에 있는 기호 중 다른 기호가 몇 개인지를 센 수 입니다. 예를 들어 1111111100000000 0000000011111111 -> 다른 기호의 개수가 16개 -> 해밍 거리 16 101 000 -> 다른 기호의 개수가 2개 -> 해밍 거리 2 위와 같습니다. distance = 0 for n1, n2 in zip(num1,..
코딩 1일 1문제! 오늘의 문제는 백준의 시험 성적 입니다. 9498번: 시험 성적 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. www.acmicpc.net 👨🏻💻 문제 풀이 시험 성적을 입력받고 score = int(input()) 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력 위의 조건에 맞추어 if를 활용하여 출력할 값을 정해줍니다. result = "F" if 90
코딩 1일 1문제! 오늘의 문제는 백준의 세 수 입니다. 10817번: 세 수 첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100) www.acmicpc.net 👨🏻💻 문제 풀이 세 수는 세 개의 숫자 중에서 두번째로 큰 수를 출력하는 문제입니다. numbers = input() 공백을 기준으로 숫자 세개를 입력받고 numbers = list(map(int, numbers.split())) 이를 map(int, numbers) 를 활용하여 ['1', '2', '3'] 을 [1, 2, 3]으로 바꾸어줍니다. numbers.sort(reverse=True) 그 다음에 numbers를 내림차순으로 정렬한 뒤 numbers[1] 중간 값을 정답으로 하면 끝! 전체..
코딩 1일 1문제! 오늘의 문제는 백준의 15904번 UCPC는 무엇의 약자일까? 입니다. 15904번: UCPC는 무엇의 약자일까? 첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 www.acmicpc.net 👨🏻💻 문제 풀이 이 문제는 문자열이 주어지면 이 문자열을 UCPC로 축약시킬 수 있는지 없는지를 보는 문제입니다. apple 에서 a와 e를 빼서 ppl을 만들 수도 있고 I love UCPC에서 I love를 제외하고 이를 UCPC로 축약시킬수도 있습니다. 다만 대소문자를 구분하여 UcPC와 UCPC는 다른 문자열입니다. 처음에는 각 단어의 첫 ..