일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Kaggle
- AI 경진대회
- 자연어처리
- 금융문자분석경진대회
- gs25
- 편스토랑 우승상품
- programmers
- SW Expert Academy
- 프로그래머스 파이썬
- 프로그래머스
- 맥북
- github
- ubuntu
- Git
- 파이썬
- Docker
- ChatGPT
- leetcode
- Baekjoon
- 백준
- 데이콘
- PYTHON
- 편스토랑
- 코로나19
- Real or Not? NLP with Disaster Tweets
- hackerrank
- dacon
- 우분투
- 캐치카페
- 더현대서울 맛집
- Today
- Total
목록
반응형
Programming (1169)
솜씨좋은장씨
코딩 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의 자리수를 출력하도록 하면..
코딩 1일 1문제! 오늘의 문제는 백준의 부분수열의 합 입니다. 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 👨🏻💻 문제 풀이 숫자 리스트가 주어지면 해당 리스트의 부분수열의 합이 입력받은 숫자 S와 같아질 경우 카운팅하여 조건을 만족하는 부분수열의 개수가 몇 개인지 구하는 문제입니다. from itertools import combinations 부분 수열을 구하는데에는 itertools의 combinations를 활용했습니다. N, S = map(int, input..
코딩 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..
이번에 API 개발을 진행하면서 base64형식으로 인코딩한 pdf파일을 request에 포함시켜 API 요청으로 받아 이를 활용하여 하는 작업이 있었습니다. 이번 글에서는 FastAPI에서 base64 형태로 인코딩된 값을 input으로 받고 이 값을 활용는 방법에 대해서 적어보려합니다. 먼저 BaseModel을 상속하여 request와 response 형식을 지정하는 class를 만들어 줍니다. from pydantic import BaseModel class Base64Request(BaseModel): base64_file: str class Base64Response(BaseModel): response_code: str response_message: str 이 형식으로 요청을 받은 base6..
코딩 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문제! 오늘의 문제는 백준의 덩치 입니다. 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 👨🏻💻 코드 ( Solution ) def bulk_rank(bulk_info_list): answer = [] for bulk_info in bulk_info_list: rank = 1 weight, height = bulk_info[0], bulk_info[1] for compare_info in bulk_info_list: compare_weight, compare_height = com..
코딩 1일 1문제! 오늘의 문제는 프로그래머스의 월간 코드 챌린시 시즌 3 없는 숫자 더하기 입니다. 코딩테스트 연습 - 없는 숫자 더하기 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 👨🏻💻 코드 ( Solution ) def solution(numbers): answer = -1 except_numbers = set(range(0, 10)) - set(numbers) answer = sum(list(except_numbers)) return answer GitHub - SOMJANG/CODI..
코딩 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))) 숫자들이 이어져있..
코딩 1일 1문제! 오늘의 문제는 삼성 SW Expert Academy 10570번 제곱 팰린드롬 수 입니다. 제곱 팰린드롬 수 문제를 파이썬으로 풀이하였습니다. SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 👨🏻💻 문제 풀이 주어진 숫자 두개 사이의 숫자들 중에 현재 숫자와 숫자의 제곱근 수 ( 루트(숫자) ) 값이 모두 팰린드롬 수 인 값들의 개수를 구하는 문제입니다. result = False sqrt_num = math.sqrt(num) num = str(num) if float(int(sqrt_num)) == sqrt_num: sqrt_num = str(int(sqrt_num)) if num == ..
드디어 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문제! 오늘의 문제는 백준의 5363번 요다입니다! 5363번: 요다 첫째 줄에 문장의 수 N이 주어진다. 둘째 줄부터 N개의 줄에는 각 문장이 주어진다. 문장의 길이는 100글자 이내이다. 단어의 개수는 3개 이상이다. www.acmicpc.net 👨🏻💻 문제 풀이 입력받은 문자열을 공백으로 나눈 뒤 string = string.split() 앞의 두글자를 뒤로 붙이고 나머지를 앞으로 붙여줍니다. string = string[2:] + string[:2] 그리고 다시 join하면 끝! " ".join(string) 👨🏻💻 코드 ( Solution ) def yoda(string): string = string.split() string = string[2:] + string[:2] re..
코딩 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문제! 오늘의 문제는 백준의 7983번 내일 할거야 입니다. 7983번: 내일 할거야 내일(1일)부터 연속으로 최대 며칠 동안 놀 수 있는지를 출력한다. 가령, 답이 0이면, 내일 과제를 해야 하며, 1 이면, 모레에 과제를 해야 한다. www.acmicpc.net 👨🏻💻 코드 ( Solution ) from sys import stdin input = stdin.readline def i_will_do_it_tomorrow(homework_info): homework_info = sorted(homework_info, key=lambda x: -x[1]) now = homework_info[0][1] - homework_info[0][0] for i in range(1, len(homew..
코딩 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..