일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- leetcode
- github
- 코로나19
- 프로그래머스 파이썬
- 편스토랑 우승상품
- 프로그래머스
- 자연어처리
- 캐치카페
- 편스토랑
- 맥북
- Real or Not? NLP with Disaster Tweets
- 더현대서울 맛집
- dacon
- Docker
- 우분투
- 백준
- PYTHON
- AI 경진대회
- 데이콘
- SW Expert Academy
- ChatGPT
- programmers
- gs25
- hackerrank
- Kaggle
- 금융문자분석경진대회
- Git
- 파이썬
- ubuntu
- Baekjoon
- Today
- Total
목록
반응형
백준 (399)
솜씨좋은장씨
코딩 1일 1문제 오늘의 문제는 백준의 단어 정렬 입니다. 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net Solution word_count = int(input()) words = [] for i in range(word_count): word = input() if (len(word), word) not in words: words.append((len(word), word)) answer = sorted(words, key=lambda x: (x[0], x[1])) for ans in ans..
코딩 1일 1문제! 오늘의 문제는 백준의 소트인사이드 입니다. 1427번: 소트인사이드 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net Solution def sort_inside(num): sorted_num = sorted(list(num), reverse=True) return int("".join(sorted_num)) if __name__ == "__main__": input_num = input() result = sort_inside(input_num) print(result) SOMJANG/CODINGTEST_PRACTICE 1일 1문제 since 2020.02.07. Contribute to SOMJANG..
코딩 1일 1문제! 오늘의 문제는 백준의 두 수의 합 입니다. 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net Solution import sys numbers_len = int(sys.stdin.readline()) numbers = sorted(list(map(int, sys.stdin.readline().split()))) sum_num = int(sys.stdin.readline()) left, right = 0, numbers_len -1 cou..
코딩 1일 1문제! 오늘의 문제는 백준의 빠른 A+B입니다. 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net Solution import sys n = int(sys.stdin.readline()) for i in range(n): num1, num2 = map(int, sys.stdin.readline().split()) print(num1+num2) Solution 풀이 이 문제는 입력하는 부분에 input 대신에 sys.stdin.readline()을 활용할 수 있는지 여부를 확인하는 문제 같았습니다. 백준에서 문제를 풀다..
코딩 1일 1문제! 오늘의 문제는 백준의 소수입니다. 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net Solution def get_primary_num_eratos(N): nums = [True] * (N) for i in range(2, len(nums) // 2 + 1): if nums[i] == True: for j in range(i+i, N, i): nums[j] = False return [i for i in range(2, N) if nums[i] == True] def solution(A, B): pri..
코딩 1일 1문제 오늘의 문제는 백준의 단어 공부 입니다. 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net Solution from collections import Counter inputStr = list(input().lower()) cnt = Counter(inputStr) cnt_items = cnt.items() cnt_nums = [num[1] for num in cnt_items] max_num = max(cnt_nums) if cnt_nums.count(max_num) != 1: print("?") else: most_comm..
코딩 1일 1문제! 오늘의 문제는 백준의 X보다 작은 수 입니다. 10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net Solution inputNums = list(map(int, input().split())) numList = list(map(int, input().split())) answer = [num for num in numList if num < inputNums[1]] print(" ".join(list(map(str, answer)))) Solution 풀이 먼저 두 수를 입력 받..
코딩 1일 1문제 2번째 문제는! 백준의 문자열 반복입니다. 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net Solution inputNum = int(input()) for i in range(inputNum): repeatNum, inputStr = input().split() answer = "" for char in inputStr: answer += int(repeatNum) * char print(answer) Solution 풀이 먼저 몇 개의 케이스를 입력 받을 것인지 입력 받습니다. ..
코딩 1일 1문제! 오늘의 첫번째 문제는 백준의 아스키 코드 입니다. 11654번: 아스키 코드 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. www.acmicpc.net Solution inputChar = input() print(ord(inputChar)) Solution 풀이 입력받은 문자를 ord를 활용하여 구해줍니다. SOMJANG/CODINGTEST_PRACTICE 1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub. github.com
코딩 1일 1문제! 오늘의 문제는 백준의 좌표압축입니다. 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net Solution from collections import Counter numbers = int(input()) inputNums = [] inputNums = list(map(int, input().split())) cnt_items = sorted(Counter(inputNums).items(), key = lambda x: x[0]) rank_dict..
코딩 1일 1문제! 오늘의 문제는 백준의 숫자의 합입니다. 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net Solution inputNum = input() nums = input() numberList = sum(map(int, list(nums))) print(numberList) SOMJANG/CODINGTEST_PRACTICE 1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub. github.com
1일 1문제! 오늘의 문제는 백준의 나머지 입니다. 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net Solution numList = [] for i in range(10): inputNum = int(input()) numList.append(inputNum % 42) print(len(set(numList))) SOMJANG/CODINGTEST_PRACTICE 1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub. github.com
1일 1문제! 오늘의 문제는 백준의 영화감독 숌 입니다! 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net Solution input_num = int(input()) answer = 666 while(input_num): if '666' in str(answer): input_num -= 1 answer += 1 print(answer-1) SOMJANG/CODINGTEST_PRACTICE 1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE..
1일 1문제 146일차! 오늘은 쉬어가는 타임! 백준의 8진수 2진수 입니다. 1212번: 8진수 2진수 첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다. www.acmicpc.net Solution print(bin(int(input(), 8))[2:]) SOMJANG/CODINGTEST_PRACTICE 1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub. github.com
1일 1문제 142일차! 142일차의 문제는 진법 변환 2입니다. 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 �� www.acmicpc.net Solution B_jinbub_dic = { 0:'0', 1:'1', 2:'2', 3:'3', 4:'4', 5:'5', 6:'6', 7:'7', 8:'8', 9:'9', 10:'A', 11:'B', 12:'C', 13:'D', 14:'E', 15:'F', 16:'G', 17:'H', 18:'I', 19:'J', 20:'K', 21:'L', 22:'M', 23:'N', 24:'O', 25..
1일 1문제 141일차! 141일차의 문제는 백준의 가장 큰 증가 부분 수열입니다. 11055번: 가장 큰 증가 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수� www.acmicpc.net Solution inputNum = int(input()) inputNums = input() inputNums = inputNums.split() inputNums = [int(num) for num in inputNums] nc = [0] * (inputNum) maxNum = 0 for i in range(0, in..
1일 1문제 140일차! 140일차의 문제는 백준의 가장 긴 바이토닉 부분 수열 입니다. 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000) www.acmicpc.net Solution import sys r = lambda : sys.stdin.readline() def _get_seq_len(a): dp = [1 for _ in range(len(a))] rev_dp = [1 for _ in range(len(a))] for i in range(len(a)): dp[i] = 1 for j in range(i, -1, -1): if a[i] > a[j] and..
1일 1문제 139일차! 139일차의 문제는 백준의 카드 구매하기 입니다. 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net Solution cardNum = int(input()) NC = [0]*(cardNum+1) cardPrice = [0]+list(map(int, input().split())) def answer(): NC[0], NC[1] = 0, cardPrice[1] for i in range(2, cardNum+1): for j in range(1, i+1): NC[i] = max(NC[i], NC[i..
1일 1문제 116일차! 오늘의 문제는 백준의 파도반 수열 입니다. 9461번: 파도반 수열 문제 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 � www.acmicpc.net Solution loopNum = int(input()) nums = [] answer = [] for i in range(loopNum): inputNum = int(input()) nums.append(inputNum) for iN in nums: if iN
1일 1문제 115일차! 115일차의 문제는 제곱수의 합입니다. 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net Solution inputNum = int(input()) nc = [0] * (inputNum+1) for i in range(1, inputNum+1): nc[i] = i for j in range(1, i): if (j * j) > i: break nc[i] = min(nc[i], nc[i - j * j] + 1) print(nc[inputNum]) SO..
1일 1문제 114일차! 오늘의 문제는 백준의 진법 변환입니다. 2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net Solution B_jinbub_dic2 = { '0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9, 'A':10, 'B':11, 'C':12, 'D':13, 'E':14, 'F':15, 'G':16, 'H':17, 'I':18, 'J':19, 'K':20, 'L':21, 'M':22, 'N':23, 'O':24, 'P':25, ..
1일 1문제 113일차! 오늘의 문제는 백준의 합분해 입니다. 2225번: 합분해 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net Solution inputNums = input() inputNums = inputNums.split() N = int(inputNums[0]) K = int(inputNums[1]) nc = [[0]*(N+1) for _ in range(K+1)] nc[0][0] = 1 # nc[0][0] = 1 for i in range(1, K+1): for j in range(0, N+1): nc[i][j] = nc[i-1][j] + nc[i][j-1] nc[i][j] = nc[i][j] % 1000000000 # print(nc) p..
1일 1문제 112일차! 오늘의 문제는 백준의 포도주 시식입니다. 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net Solution inputNum = int(input()) amount_of_wine = [] for i in range(inputNum): ryang = int(input()) amount_of_wine.append(ryang) nc = [[0]*3 for _ in range(inputNum+1)] for i in range(1, inputNum+1): nc[i][0] = max(nc[i-1]) ..
1일 1문제 107일차! 오늘의 문제는 백준의 오르막 수 입니다. 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수� www.acmicpc.net Solution inputNum = int(input()) nc = [[0]*10 for _ in range(inputNum+1)] ans, mod = 0, 10007 for i in range(0, 10): nc[1][i] = 1 for i in range(2, inputNum+1): nc[i][0] = nc[i-1][0] for j in range(1, 10..
1일 1문제 101일차! 오늘이 문제는 2xn 타일링 2입니다. 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net Solution n = int(input()) def answer(n): if n == 1: fiboNum = 1 elif n == 2: fiboNum = 3 elif n >= 3: fibo = [0] * (n) fibo[0] = 1 fibo[1] = 3 for i in range(2, n): fibo[i] = (fibo[i-1] + fibo[i-2] + fibo[i-2]) % 10007 fiboNum = fibo[n-1] ret..
1일 1문제 99일차! 오늘의 문제는 백준의 문자열 분석입니다. 10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있 www.acmicpc.net Solution import re while True: try: string = input() except: break if len(string) == 0: break elif len(string) != 0: somunja = re.findall('[a-z]', string) daemunja = re.findall('[A-Z]', string) sutja = re.findall('[0-9]', s..
1일 1문제! 98일차! 오늘의 문제는 백준의 큐 입니다. 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 �� www.acmicpc.net Solution my_queue = [] command_list = [] num = input() for i in range(int(num)): command = input() command_list.append(command) for command in command_list: cmd = command.split() if cmd[0] == 'push': my_queue.append(..
1일 1문제 96일차! 오늘의 문제는 백준의 듣보잡입니다. 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. �� www.acmicpc.net Solution N, M = map(int, input().split()) people_no_hear = [] people_no_look = [] for i in range(N): name = str(input()) people_no_hear.append(name) for i in range(M): name = str(input()) people_no_look.append(name) no_hear..
1일 1문제 94일차! 오늘의 문제는 가장 긴 증가하는 부분수열입니다. 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net Solution inputNum = int(input()) inputNums = input() inputNums = inputNums.split() inputNums = [int(num) for num in inputNums] nc = [0] * (inputNum) maxNum = 0 for i in range(0,..
1일 1문제 93일차! 오늘의 문제는 백준의 ROT13입니다. 11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net Solution word_s = input() rot13keyValue = {'a':'n', 'b':'o', 'c':'p', 'd':'q', 'e':'r', 'f':'s', 'g':'t', 'h':'u', 'i':'v', 'j':'w', 'k':'x', 'l':'y', 'm':'z', 'n':'a', 'o':'b', 'p':'c', 'q':'d', 'r':'e', 's':'f', 't':'g', 'u':'h', 'v':'i', 'w':'j', 'x':'k', 'y':'l'..