일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- github
- 금융문자분석경진대회
- programmers
- 프로그래머스 파이썬
- 편스토랑 우승상품
- 파이썬
- PYTHON
- gs25
- 자연어처리
- 코로나19
- ChatGPT
- Baekjoon
- dacon
- leetcode
- Docker
- hackerrank
- Real or Not? NLP with Disaster Tweets
- 우분투
- 캐치카페
- 맥북
- Git
- SW Expert Academy
- 백준
- ubuntu
- 편스토랑
- 데이콘
- 프로그래머스
- AI 경진대회
- 더현대서울 맛집
- Kaggle
- Today
- Total
목록
반응형
Programming/코딩 1일 1문제 (1013)
솜씨좋은장씨
코딩 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문제! 오늘의 문제는 삼성 SW Expert Academy의 알파벳을 숫자로 변환 입니다. SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 👨🏻💻 문제 풀이 알파벳을 쭉 입력받으면 이를 숫자로 변환하여 공백을 구분자로 이어붙인 문자열을 만드는 문제입니다. alphabets = input() 먼저 변환할 알파벳을 입력받습니다. converted_numbers = [] 알파벳을 숫자로 변환한 값을 담을 리스트를 하나 만들어줍니다. for alphabet in alphabets: converted_numbers.append(str(ord(alphabet) - ord('A') + 1)) 입력받은 알파벳문..
코딩 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문제! 오늘의 문제는! 백준의 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..
코딩 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문제! 오늘의 문제는 프로그래머스의 올바른 괄호 입니다. 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 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문제! 오늘의 문제는 백준의 15904번 UCPC는 무엇의 약자일까? 입니다. 15904번: UCPC는 무엇의 약자일까? 첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 www.acmicpc.net 👨🏻💻 문제 풀이 이 문제는 문자열이 주어지면 이 문자열을 UCPC로 축약시킬 수 있는지 없는지를 보는 문제입니다. apple 에서 a와 e를 빼서 ppl을 만들 수도 있고 I love UCPC에서 I love를 제외하고 이를 UCPC로 축약시킬수도 있습니다. 다만 대소문자를 구분하여 UcPC와 UCPC는 다른 문자열입니다. 처음에는 각 단어의 첫 ..
코딩 1일 1문제! 오늘의 문제는 백준의 홀수 입니다. 2576번: 홀수 7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지 www.acmicpc.net 👨🏻💻 문제 풀이 numbers = [] for _ in range(7): number = int(input()) numbers.append(number) 먼저 7개의 숫자를 입력받아 numbers 리스트에 저장합니다. odd_nums = [num for num in numbers if num % 2 == 1] if len(odd_nums) == 0: answer = [-1] else..
코딩 1일 1문제! 오늘의 문제는 백준의 두 수 비교하기 입니다. 1330번: 두 수 비교하기 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. www.acmicpc.net 👨🏻💻 문제 풀이 A, B = map(int, input().split()) 입력 받은 두 수를 공백을 기준으로 split한 다음 이를 map(int) 를 활용하여 A, B로 나누어 줍니다. answer = "==" if A > B: answer = ">" elif A < B: answer = "" elif A < B: answer = "
코딩 1일 1문제! 즐거운 대체공휴일인 오늘! 오늘의 문제는 프로그래머스의 위클리 챌린지 5주차 문제인 모음사전입니다. 코딩테스트 연습 - 5주차_모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr 👨🏻💻 코드 풀이 이 문제는 모음 ( A, E, I, O, U ) 로 이루어진 A ~ UUUUU 사이의 단어가 몇번째 단어인지를 맞추는 문제입니다. 저는 곱집합을 만들어주는 itertools의 product를 활용하여 문제를 풀었습니다. itertools의 product는 아래의 글을 참고..
코딩 1일 1문제! 오늘의 문제는 백준의 완전제곱수 입니다. 1977번: 완전제곱수 M과 N이 주어질 때 M이상 N이하의 자연수 중 완전제곱수인 것을 모두 골라 그 합을 구하고 그 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 완 www.acmicpc.net 👨🏻💻 문제 풀이 완전제곱수란 1(1의 제곱), 4(2의 제곱), 9(3의 제곱), 16(4의 제곱), 25(5의 제곱)과 같은 수 입니다. 여기서 입력되는 수의 범위가 1 ~ 10,000 인데 10,000은 100의 제곱 수 이므로 def get_perfect_square_numbers(): return [pow(num, 2) for num in range(1, 101)] pow를..
코딩 1일 1문제! 오늘의 문제는 백준의 단어 뒤집기 입니다. 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 👨🏻💻 문제 풀이 문자열을 공백으로 split한 다음 각 단어를 [::-1]을 활용하여 뒤집은 후에 words = [word[::-1] for word in string.split()] " ".join( ) 을 활용하여 다시 하나의 문자열로 만들어주면 끝! " ".join(words) 전체 코드는 아래를 참고해주세요. 👨🏻💻 코드 ( Solution ) def reverse_word(str..
코딩 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의 자리수를 출력하도록 하면..