일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- gs25
- ChatGPT
- github
- Git
- 편스토랑
- Baekjoon
- SW Expert Academy
- 금융문자분석경진대회
- Kaggle
- programmers
- 코로나19
- 캐치카페
- 맥북
- 프로그래머스
- ubuntu
- Real or Not? NLP with Disaster Tweets
- 프로그래머스 파이썬
- 백준
- AI 경진대회
- 우분투
- 데이콘
- hackerrank
- dacon
- leetcode
- Docker
- 파이썬
- 더현대서울 맛집
- PYTHON
- 편스토랑 우승상품
- 자연어처리
- Today
- Total
목록
반응형
Baekjoon (592)
솜씨좋은장씨
코딩 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문제! 오늘은 555일차 문제! 백준의 빈도 정렬 입니다. 2910번: 빈도 정렬 첫째 줄에 메시지의 길이 N과 C가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) 둘째 줄에 메시지 수열이 주어진다. www.acmicpc.net 👨🏻💻 코드 ( Solution ) import sys def frequency_sorting(numbers): order_cnt_dict = {} priority_dict = {} for idx, number in enumerate(numbers): if number not in order_cnt_dict.keys(): order_cnt_dict[number] = [0, idx] order_cnt_dict[number][0] +=..
코딩 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문제! 오늘의 문제는 백준의 0 = not cute / 1 = cute 입니다. 10886번: 0 = not cute / 1 = cute 준희는 자기가 팀에서 귀여움을 담당하고 있다고 생각한다. 하지만 연수가 볼 때 그 의견은 뭔가 좀 잘못된 것 같았다. 그렇기에 설문조사를 하여 준희가 귀여운지 아닌지 알아보기로 했다. www.acmicpc.net 👨🏻💻 코드 ( Solution ) from collections import Counter def cute_or_not(opinions): cnt = Counter(opinions).most_common(1) if cnt[0][0] == 0: answer = 'Junhee is not cute!' elif cnt[0][0] == 1: answe..
코딩 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문제! 오늘의 문제는 백준의 17배입니다. 5893번: 17배 첫째 줄에 이진수 N이 주어진다. N은 최대 1000자리인 이진수이며, 0이 들어오는 경우는 없다. www.acmicpc.net 👨🏻💻 문제 풀이 number = int(bin_num, 2) 입력받은 이진수를 int를 활용하여 정수로 바꾸어줍니다. seventeen_time_num = number * 17 바꾼 정수에 17을 곱한 값을 bin(seventeen_time_num)[2:] 다시 bin을 통해 이진수로 바꾸어주면 끝! 입니다. 전체 코드는 아래를 참고해주세요. 👨🏻💻 코드 ( Solution ) def seventeen_times(bin_num): number = int(bin_num, 2) seventeen_tim..
코딩 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문제! 오늘의 문제는 백준의 평균 점수 입니다. 10039번: 평균 점수 입력은 총 5줄로 이루어져 있고, 원섭이의 점수, 세희의 점수, 상근이의 점수, 숭이의 점수, 강수의 점수가 순서대로 주어진다. 점수는 모두 0점 이상, 100점 이하인 5의 배수이다. 따라서, 평균 점 www.acmicpc.net 👨🏻💻 문제 풀이 5명의 점수를 입력 받으면 5명 점수의 평균을 구하는 문제인데 특이한 점은 보충수업을 받게 되면 40점 미만의 점수는 무조건 40점으로 변경된다는 점을 고려하여 풀면되는 문제입니다. scores = [] for _ in range(5): score = int(input()) scores.append(score) 먼저 5명의 점수를 입력 받습니다. sum_score = 0 ..
코딩 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..