일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SW Expert Academy
- PYTHON
- 편스토랑 우승상품
- dacon
- 코로나19
- AI 경진대회
- 맥북
- Real or Not? NLP with Disaster Tweets
- 우분투
- 캐치카페
- Docker
- gs25
- Baekjoon
- github
- 데이콘
- 프로그래머스
- programmers
- 자연어처리
- 편스토랑
- 백준
- hackerrank
- 파이썬
- 더현대서울 맛집
- ubuntu
- Kaggle
- leetcode
- 프로그래머스 파이썬
- ChatGPT
- 금융문자분석경진대회
- Git
- Today
- Total
목록
반응형
파이썬 (223)
솜씨좋은장씨
코딩 1일 1문제! 오늘의 문제는 SW Expert Academy의 시각 덧셈 입니다. SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 👨🏻💻 코드 ( Solution ) def time_sum(time1, time2): hour1, minute1 = time1[0], time1[1] hour2, minute2 = time2[0], time2[1] more_hour = 0 sum_minute = minute1 + minute2 if sum_minute >= 60: sum_minute -= 60 more_hour += 1 sum_hour = hour1 + hour2 + more_hour if sum_hour >..
코딩 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문제! 오늘의 문제는 SW Expert Academy의 간단한 369게임 입니다. SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 👨🏻💻 코드 ( Solution ) def convert_num_to_clap(num): check_num1, check_num2, check_num3 = '3', '6', '9' num = str(num) count_num = num.count(check_num1) + num.count(check_num2) + num.count(check_num3) return "-" * count_num if count_num > 0 else num def sam_yook_gu(N..
코딩 1일 1문제! 오늘의 문제는 프로그래머스의 나머지가 1이 되는 수 찾기 입니다. 코딩테스트 연습 - 나머지가 1이 되는 수 찾기 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 입 programmers.co.kr 👨🏻💻 문제 풀이 나머지가 1이 되는 수는 1부터 n까지 반복문을 돌면서 n % x 가 1 이되는 가장 첫번째 x를 찾으면됩니다. for x in range(1, n): if n % x == 1: answer = x break 👨🏻💻 코드 ( Solution ) def solution(n): answer = 0 for x in ..
코딩 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문제! 오늘의 문제는 백준의 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문제! 오늘의 문제는 백준 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/..
코딩 1일 1문제! 오늘의 문제는 삼성 SW Expert Academy 2070번 큰 놈, 작은 놈, 같은 놈 입니다. SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 👨🏻💻 코드 ( Solution ) def big_same_small(num1, num2): answer = "=" if num1 < num2: answer = "" return answer if __name__ == "__main__": for i in range(int(input())): num1, num2 = map(int, input().split()) answer = big_same_small(num1, num2) print(f"#{i..
코딩 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문제! 오늘의 문제는 백준의 단어순서 뒤집기 입니다. 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문제! 오늘의 문제는 백준의 세 수 입니다. 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문제! 오늘의 문제는 프로그래머스의 올바른 괄호 입니다. 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr 👨🏻💻 코드 ( Solution ) def solution(s): answer = True mystack = [] for idx, bracket in enumerate(s): if bracket == "(": mystack.append(bracket) else: try: if mystack.pop() == "(": pass except: answe..
코딩 1일 1문제! 오늘의 문제는 프로그래머스 위클리 챌린지 8주차! 최소직사각형 입니다. 코딩테스트 연습 - 8주차 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 👨🏻💻 코드 풀이 여러 명함의 크기를 알려주면 이 모든 명함들을 담을 수 있는 가장 작은 크기의 명함케이스의 크기를 구하는 문제입니다. 의외로 엄청 쉽게 풀 수 있는 문제입니다. 명함의 가로 세로 길이 중에서 가장 긴 길이로 먼저 명함케이스의 길이를 지정하면 쉽게 풀 수 있는 문제입니다. 먼저 각 명함의 길이들을 앞쪽에 더 긴 길이가 오도록 정렬합니다. [[60, 50], [30..
코딩 1일 1문제! 오늘의 문제는 백준의 4375번 1 입니다. 4375번: 1 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. www.acmicpc.net 👨🏻💻 문제 풀이 입력받은 숫자의 배수이면서 1로만 이루어진 숫자의 자리수를 구하는 문제입니다. 입력은 while과 try - except EOFError를 활용하여 입력 받습니다. while True: try: num = int(input()) print(one(num)) except EOFError: break 그럼 temp에 1을 하나씩 추가하면서 이 temp의 숫자가 입력받은 숫자로 나누어지는지 확인하고 나누어질때 temp의 자리수를 출력하도록 하면..
코딩 1일 1문제! 오늘의 문제느 백준의 소수&팰린드롬입니다. 1747번: 소수&팰린드롬 어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, www.acmicpc.net 👨🏻💻 문제 풀이 입력받은 수 보다 크거나 같으면서 소수의 조건을 만족하고 팰린드롬의 조건을 만족하는 가장 작은 수를 구하는 문제입니다. 먼저 소수 인지 아닌지를 보는 부분은 에라토스테네스의 체 방법을 활용하였고 팰린드롬은 [::-1] 방법을 활용해 확인하였습니다. def get_primary_num_eratos(N): nums = [True] * (N) for..
코딩 1일 1문제! 오늘의 문제는 백준의 단어 나누기 입니다. 1251번: 단어 나누기 알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다 www.acmicpc.net 👨🏻💻문제 풀이 반복문을 통해서 모든 케이스의 단어를 만든 뒤에 그 중 가장 첫 번째로 오는 단어를 출력하면 됩니다. 👨🏻💻 코드 ( Solution ) def word_split(word): temp_list = [] for i in range(len(word) - 2): for idx in range(len(word) - 1): for idx2 in range(len(word)): temp = ..
코딩 1일 1문제! 오늘의 문제는 백준의 알람 시계입니다. 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net 👨🏻💻 문제 풀이 매일 아침 알람을 끄고 다시자는 습관 때문에 평소에 맞추던 알람보다 45분 빠르게 설정하여 알람을 끄고 다시 잠에 들어도 문제가 되지 않게 하려고 할때 그 45분 빠르게 설정하는 시간이 몇 시 인지 구하는 문제입니다. alarm_time = input() hour, minute = map(int, alarm_time.split()) 먼저 기존에 설정하던 알람시간을 입력 받습니다. 입력 받은 알..
코딩 1일 1문제! 오늘의 문제는 5와 6의 차이입니다. 2864번: 5와 6의 차이 첫째 줄에 두 정수 A와 B가 주어진다. (1
코딩 1일 1문제! 오늘의 문제는 백준의 중복 빼고 정렬하기 입니다. 10867번: 중복 빼고 정렬하기 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. www.acmicpc.net 👨🏻💻 문제 풀이 set을 활용하여 중복을 제거한 뒤 sorted 또는 sort를 활용하여 정렬하면 쉽게 풀 수 있는 문제입니다. _ = input() numbers = input() 먼저 숫자의 개수와 숫자들이 공백을 사이에 두고 이어져있는 문자열을 입력 받습니다. numbers = list(map(int, numbers.split())) numbers = sorted(list(set(numbers))) 숫자들이 이어져있..
드디어 2주간의 자가격리가 해제된 오늘!!!! 코딩 1일 1문제! 오늘의 문제는 백준의 배수와 약수 입니다. 쉬운 문제 빨리 풀고 맛있는 것을 먹으러 가야겠습니다.🤩 5086번: 배수와 약수 각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다. www.acmicpc.net 👨🏻💻 문제 풀이 문자열을 계속 입력 받는데 이때 입력 받은 문자열이 "0 0" 일 경우 반복을 중단하도록 합니다. while True: input_str = input() if input_str == "0 0": break 그렇지 않은 경우에는 입력 받은 문자열을 split을 활용하여 공백으로 쪼갠 후에 num1, num2 = map(i..
코딩 1일 1문제! 오늘의 문제는 백준의 2007년 입니다. 1924번: 2007년 첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. www.acmicpc.net 👨🏻💻 문제 풀이 python 의 datetime을 활용하면 쉽게 문제를 풀 수 있습니다. datetime.datetime(year=2007, month=month, day=day).weekday() 입력받은 월과 일을 통해 2007년의 요일을 구하는 문제이므로 입력받은 내용을 바탕으로 datetime객체를 만들어준 뒤 weekday를 활용하여 요일을 구합니다..
코딩 1일 1문제! 오늘의 문제는 백준 3783번 세제곱근 입니다. 3783번: 세제곱근 각 테스트 케이스에 대해서, 입력으로 주어진 수의 세제곱근을 소수점 10째짜리까지 출력한다. 이때, 반올림을 하는 것이 아니고, 버림을 해야 한다. www.acmicpc.net 👨🏻💻 코드 ( Solution ) import decimal def cube_root(input_num): decimal_num = decimal.Decimal(input_num + '.0000000000') pow_num = decimal.Decimal('1') / decimal.Decimal('3') decimal_num = decimal.Decimal(decimal_num ** pow_num) decimal_num = round(de..
코딩 1일 1문제! 오늘의 문제는 백준의 17251번 힘 겨루기 입니다. 17251번: 힘 겨루기 과거 격투가로 명성을 떨치던 힘스트롱씨는 "힘 겨루기"라는 대회를 주최하여 전국에 홍보를 하였다. 모집 공고를 보고 전국 각지에서 많은 사람들이 모였는 데, 모집 공고에 '힘'이란 것에 대해 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def fight_for_strength(players): players = list(map(int, players.split())) max_st, start, end = 0, 0, 0 for idx, player in enumerate(players): if max_st < player: max_st = player start = idx end = id..
코딩 1일 1문제 오늘의 문제는 백준의 님 무기가 좀 나쁘시네여 입니다. 11387번: 님 무기가 좀 나쁘시네여 각 줄마다 "공격력", "힘", "치명타 확률", "치명타 피해비율", "공격속도 증가"의 수치를 나타내는 다섯 개의 정수가 공백을 사이에 두고 순서대로 주어진다. 첫 번째 줄은 무기를 장착한 크리의 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def weapon_power(now,weapon): return (now[0]+weapon[0]) * (100+now[1]+weapon[1]) * ( 100*(100-min(now[2]+weapon[2],100)) + min(now[2]+weapon[2],100) * (now[3]+weapon[3])) * (100+now[4]+w..
코딩 1일 1문제! 오늘의 문제는 백준의 나는 너가 살아온 날을 알고 있다 입니다. 백준의 2139번 나는 너가 살아온 날을 알고 있다 문제를 파이썬으로 풀이하였습니다. 2139번: 나는 너가 살아온 날을 알고 있다 우리는 일상생활에서 휴가 일수를 계산하는 것 처럼 두 날짜 사이의 기간을 계산해야 하는 경우가 많다. 이때, 계산을 하는 가장 간단한 방법은 적당한 날짜를 잡은 뒤 계산할 날짜가 될 때까지 www.acmicpc.net 👨🏻💻 문제 풀이 일, 월, 년도 의 값을 입력받으면 해당 년도의 1월 1일 부터 입력 받은 날까지 몇 일이 지났는지를 구하는 문제입니다. 이 문제는 datetime을 활용하면 정말 쉽게 풀 수 있습니다. 입력 받은 일, 월, 년도의 값을 datetime에 넣어 datetim..
코딩 1일 1문제! 오늘의 문제는 백준의 제 2회 IUPC는 잘 개최될 수 있을까? 입니다. 12788번: 제 2회 IUPC는 잘 개최될 수 있을까? 2016년 5월 28일 제 2회 인하대학교 프로그래밍 경시대회(IUPC)가 개최된다. 이 대회는 다른 프로그래밍 경시대회와 다르게 손코딩으로 문제를 풀어야한다. CTP회장인 정은이는 모든 대회 참가자들 www.acmicpc.net 👨🏻💻 문제 풀이 이 문제는 최대한 적은 수의 회원에게 빌린 펜으로 대회를 운영해야할때 몇 명의 회원에게 펜을 빌려야하는지, 아니면 빌려서는 운영이 불가한지를 확인하는 문제입니다. 먼저 예제 입력에 맞추어 입력을 받습니다. member_num = int(input()) team_num, team_member = map(int, ..
코딩 1일 1문제! 오늘의 문제는 백준의 백대열 입니다. 백준의 백대열 문제를 파이썬으로 풀이하였습니다. 14490번: 백대열 n과 m이 :을 사이에 두고 주어진다. (1 ≤ n, m ≤ 100,000,000) www.acmicpc.net 👨🏻💻 문제 풀이 숫자 N과 M 이 : 을 사이로 두고 주어지면 두 숫자를 약분한 값을 출력하는 문제입니다. 두 숫자를 약분하여 더이상 나누어지지 않는 숫자로 나누기 위해서는 두 숫자의 최대공약수로 나누어야 합니다. 만약 N이 100 M이 10 이라면 이 둘의 최대공약수인 10을 활용하여 나누면 원하는 값인 10과 1이 나옵니다. 18과 24일 경우라면 최대공약수 6을 활용하여 나누면 됩니다. 최대공약수는 Python의 경우에는 기본으로 제공되는 함수중에 math 의..
코딩 1일 1문제! 오늘의 문제는 백준의 창영이의 일기장 입니다. 2954번: 창영이의 일기장 창영이는 매일 밤 하루동안 일어난 일을 일기장에 남긴다. 일기장을 쓰면서 영어 공부도 같이 하기 위해서 영어로 일기를 쓴다. 또, 남들이 자신의 일기장을 보는 것을 막기 위해서 모음('a','e','i www.acmicpc.net 👨🏻💻 문제 풀이 창영이는 남이 일기장을 보는 것을 막기 위해서 모음 ( 'a' , 'e', 'i', 'o', 'u' ) 다음에 'p'를 하나쓰고 그 뒤에 모음을 하나더 씁니다. "kemija" 의 경우 ke 다음에 pe가 붙고 ja 뒤에 pa 가 붙어 "kepemipijapa" 가 됩니다. 우리는 "kepemipijapa" 를 "kemija" 로 바꾸어야합니다. 먼저 모음인지 아닌..
코딩 1일 1문제! 오늘의 문제는 백준의 회의실 배정입니다. 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 👨🏻💻 문제 풀이 이 문제는 비교적 쉽게 문제를 풀 수 있습니다. 이 힌트를 보고 생각난 방법입니다. 보면 시작시간과 끝시간이 가지런히 정렬 되어있는 것을 볼 수 있습니다. 그럼 정렬은 어떤 기준으로 해야하느냐! 먼저 문제 속 기준을 보아야합니다. 회의실의 개수 == 1개 회의가 시작하면 중간에 중단될 수 없음 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있음 이때 시작시간과 끝 시간은 같을 수 있음 회의실의 개수는 하나이고 회의가 시작하면 중간에 중단될 수 없으므로 빠르게 끝나는 회의 일수록 더 많은 회의가 ..