일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코로나19
- github
- 프로그래머스
- Git
- hackerrank
- ubuntu
- Docker
- dacon
- 백준
- 자연어처리
- 편스토랑
- Baekjoon
- PYTHON
- AI 경진대회
- 데이콘
- programmers
- Real or Not? NLP with Disaster Tweets
- 금융문자분석경진대회
- 맥북
- Kaggle
- 더현대서울 맛집
- 프로그래머스 파이썬
- gs25
- leetcode
- 파이썬
- SW Expert Academy
- 캐치카페
- 편스토랑 우승상품
- 우분투
- ChatGPT
- Today
- Total
목록
반응형
Baekjoon (592)
솜씨좋은장씨

1일 1문제 66일차! 오늘의 문제는 백준에 있는 모음의 개수입니다. 1264번: 모음의 개수 문제 영문 문장을 입력받아 모음의 개수를 세는 프로그램을 작성하시오. 모음은 'a', 'e', 'i', 'o', 'u'이며 대문자 또는 소문자이다. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 영어 대소문자, ',', '.', '!', '?', 공백으로 이루어진 문장이 주어진다. 각 줄은 최대 255글자로 이루어져 있다. 입력의 끝에는 한 줄에 '#' 한 글자만이 주어진다. 출력 각 줄마다 모음의 개수를 세서 출력한다. 예제 입력 www.acmicpc.net Solution vowel_list = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'] ..

1일 1문제! 64일차! 오늘의 문제는 백준의 연속합입니다! 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net Solution inputNum = int(input()) inputNums = input() inputNums = inputNums.split() inputNums = [int(num) for num in inputNums] inputNums.insert(0, 0) maxSum = [] maxSum.append(inputNums[0]) for i in range(1, inputNum+1): maxSum.appe..

1일 1문제 62일차! 오늘의 문제는 백준의 스티커입니다. 9465번: 스티커 문제 상근이의 여동생 상냥이는 문방구에서 스티커 2n개를 구매했다. 스티커는 그림 (a)와 같이 2행 n열로 배치되어 있다. 상냥이는 스티커를 이용해 책상을 꾸미려고 한다. 상냥이가 구매한 스티커의 품질은 매우 좋지 않다. 스티커 한 장을 떼면, 그 스티커와 변을 공유하는 스티커는 모두 찢어져서 사용할 수 없게 된다. 즉, 뗀 스티커의 왼쪽, 오른쪽, 위, 아래에 있는 스티커는 사용할 수 없게 된다. 모든 스티커를 붙일 수 없게된 상냥이는 각 스티커에 점 www.acmicpc.net Solution loopNum = int(input()) for i in range(loopNum): inputNum = int(input()) ..

1일 1문제 55일차! 오늘의 문제는 백준의 타일 채우기 문제입니다. 2133번: 타일 채우기 문제 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. 입력 첫째 줄에 N(1 ≤ N ≤ 30)이 주어진다. 출력 첫째 줄에 경우의 수를 출력한다. 예제 입력 1 복사 2 예제 출력 1 복사 3 힌트 아래 그림은 3×12 벽을 타일로 채운 예시이다.... www.acmicpc.net Solution inputNum = int(input()) nc = [0] * (inputNum+1) for i in range(1, inputNum+1): if i % 2 == 1 : nc[i] = 0 elif i == 2 : nc[i] = 3 else : temp = 0 for j in range(..

1일 1문제 54일차! 오늘의 문제는 백준의 30입니다. 10610번: 30 문제 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한다. 미르코를 도와 그가 만들고 싶어하는 수를 계산하는 프로그램을 작성하라. 입력 N을 입력받는다. N는 최대 105개의 숫자로 구성되어 있으며, 0으로 시작하지 않는다. 출력 미르코가 만들고 싶어하는 수가 존재한다면 그 수를 출력하라. 그 수가 존재하지 않는 www.acmicpc.net Solution 1 N = input() N = list(N) answer = -1 max_num = sorted(N, reverse=True) m..

1일 1문제 53일차! 오늘의 문제는 동전 0 입니다. 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 첫번째 시도 N, K = map(int, input().split()) coins = [] for i in range(N): coin = int(input()) coins.append(coin) index = N - 1 count = 0 while K != 0: if coins[index] K: index = index - 1 print(coun..

1일 1문제 52일차! 오늘의 문제는 서로 다른 부분 문자열의 개수 입니다. 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net Solution 1 string = str(input()) strings = [] for i in range(len(string)): for j in range(len(string) - i): strings.append(string[j:j+i+1]) print(len(set(strings))) SOMJANG/CODINGTEST_PRACTICE 1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTI..

1일 1문제 46일차! 오늘의 문제는 쉬운 계단수입니다. 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net Solution inputNum = int(input()) nc = [[0]*10 for _ in range(inputNum+1)] ans, mod = 0, 1000000000 for i in range(1, 10): nc[1][i] = 1 for i in range(2, inputNum+1): for j in range(0, 10): if j > 0: nc[i][j] += nc[i-1][j-1] if j < 9: nc[i][j] += nc[i-1][j+1] nc[i][j] %= mod # print(nc) print(s..

1일 1문제 42일차! 오늘의 문제는 백준의 2xn타일링입니다. 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net Solution n = int(input()) def answer(n): if n == 1: fiboNum = 1 elif n == 2: fiboNum = 2 elif n >= 3: fibo = [0] * (n) fibo[0] = 1 fibo[1] = 2 for i in range(2, n): fibo[i] = fibo[i-1] + fibo[i-2] fiboNum = fibo[n-1] % 10007 return fiboN..

1일 1문제 10일차! 오늘 문제는 K번째 수 입니다. 11004번: K번째 수 수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 이 문제는 N개의 숫자를 입력받고 그 N개의 숫자를 정렬한 다음 원하는 K번째 수가 무엇인지 맞추는 문제입니다. 처음 떠오른 아이디어는 입력받은 N개의 숫자를 내림차순으로 정렬한 뒤 뒤에서부터 K번째 수에 index로 접근하는 방법을 떠올려보았습니다. 바로 구현해보았습니다. import sys N, K = map(int, input().split()) nums = [] for i in range(N): num = int(input()) nums.append(nu..

1일 1문제 9일차! 오늘의 문제는 카드입니다. 11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지고 있는 정수를 구하는 프로그램을 작성하시오. 만약, 가장 많이 가지고 있는 정수가 여러 가지라면, 작은 것을 출력한다. www.acmicpc.net 이 문제는 -26^2와 26^2 사이의 N개의 카드의 숫자를 입력받으면 그 중 가장 많이 존재하는 카드의 숫자는 무엇인지 찾아내는 문제입니다. 저번 수 정렬하기 3에서 dictionary를 활용하여 풀었던 것을 활용해보려합니다. [BaeKJoon] 10989번: 수정렬하기 3 (Python)..

1일 1문제 8일차! 다행히도 작심 3일에 끝나지 않고 작심 8일까지 왔습니다. 오늘 풀어볼 문제는 수 정렬하기 3 입니다. 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 왜.. 수 정렬하기 2가 있는데 ? 문제가 ...? 또있지...? 라는 생각이 들어 수 정렬하기 2에 제출했던 코드를 제출해보았습니다. [BaeKJoon] 2751번: 수 정렬하기2 (Python) 1일 1문제 5일차! 오늘문제는 수 정렬하기 입니다. 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄..

1일 1문제! 7일차! 오늘의 문제는 백준에있는 국영수 문제입니다. 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 100보다 작거나 같은 자연수이다. 이름은 알파벳 대소문자로 이루어진 문자열이고, 길이는 10자리를 넘지 않는다. www.acmicpc.net 이 문제는 이름과 국어, 영어, 수학 점수를 입력받게 되면 국어 점수가 감소하는 순서로 국어 점수가 같으면 영어 점수가 증가하는 순서로 국어 점수와 영어 점수가 같으면 수학 점수가 감소하는 순서로 모든 점수가 같으면 이름이 사전 순으로 증가하는 순서로 (단, 아스키 ..

1일 1문제 6일차! 오늘 문제는 나이순 정렬입니다! 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. www.acmicpc.net 이 문제는 나이와 이름을 같이 입력받으면 나이순 > 이름순으로 정렬하여 출력하여 보여주는 문제입니다. 문제를 읽는 순간 Dictionary 를 활용하여 풀어야겠다는 생각이 들었습니다. N = int(input()) data_dict = {} for i in range(N): [a, b] = map(str, input().split()) if int(a) not in data_dict.keys(): dat..

1일 1문제! 세번째 문제는 좌표 정렬하기 2입니다. 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 좌표 정렬하기 1에서 x와 y의 자리를 바꾸고 정렬 후 출력하였습니다. N = int(input()) nums = [] for i in range(N): [a, b] = map(int, input().split()) arr = [b, a] nums.append(arr) nums = sorted(nums) for i in range(N): print(num..

1일 1문제 5일차! 두번째로 풀어본 문제는 좌표 정렬하기 입니다. 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 좌표를 입력받으면 정렬을 하되 x좌표가 같으면 y좌표가 증가하는 순서대로 정렬 후 출력하는 문제입니다. 이 문제도 먼저 sorted로 풀어보았습니다. 입력받은 수를 list로 만들고 python의 sorted로 정렬 후 출력해보았습니다. N = int(input()) nums = [] for i in range(N): [a, b] = map(i..

1일 1문제 5일차! 오늘문제는 수 정렬하기 입니다. 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 이 수는 정렬되지 않은 중복되지 않는 수 N개를 입력받아 그 수를 오름차순으로 한줄에 하나씩 출력하는 문제입니다. Python의 sorted함수를 사용하서 정렬 후 출력해 보았습니다. N = int(input()) nums = [] for i in range(N): nums.append(int(input())) nums = sorted(nums) for i in range(N): print(num..

1일 최소 1문제 4일차! 오늘의 문제는 조합 속의 0의 개수를 구하는 문제입니다. 2004번: 조합 0의 개수 첫째 줄에 정수 n, m(0≤m≤n≤2,000,000,000, n!=0)이 들어온다. www.acmicpc.net 먼저 nCk일 경우 왼쪽과 같이 연산을 실시합니다. 여기서 n이 10 k가 7일 경우 10!을 3!과 7!로 나누어 계산합니다. 이를 인지하고 이전에 풀었던 팩토리얼 문제를 활용하여 풀어보려합니다. [BaeKJoon] 10872번: 팩토리얼 (Python) 1일 최소 1문제! 3일차! 이미 오늘 문제의 할당량은 채웠지만 원자력발전소 상태판단 알고리즘 상태판단 경진대회를 위해 LightGBM 모델을 학습시키고 있는데 시간이 너무 오래걸려 그 시간 사이에 문제를 풀어보.. somjan..

1일 최소 1문제! 3일차! 이미 오늘 문제의 할당량은 채웠지만 원자력발전소 상태판단 알고리즘 상태판단 경진대회를 위해 LightGBM 모델을 학습시키고 있는데 시간이 너무 오래걸려 그 시간 사이에 문제를 풀어보려합니다. 이번 문제는 팩토리얼 0의 개수! 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 좀 전에 풀었던 팩토리얼을 구하는 문제를 활용하여 풀어보고자 합니다. [BaeKJoon] 10872번: 팩토리얼 (Python) 1일 최소 1문제! 3일차! 이미 오늘 문제의 할당량은 채웠지만 원자력발전소 상태판단 알고리즘 상태판단 경진대회를 위해 LightGBM 모델을 학습시키고 있는데 시간이 ..

1일 최소 1문제! 3일차! 이미 오늘 문제의 할당량은 채웠지만 원자력발전소 상태판단 알고리즘 상태판단 경진대회를 위해 LightGBM 모델을 학습시키고 있는데 시간이 너무 오래걸려 그 시간 사이에 문제를 풀어보려합니다. 이번문제는 팩토리얼! 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 이건 0이상 12이하의 정수를 입력 받으면 그 값에 대해서 팩토리얼 값을 구하는 문제입니다. 반복문을 사용해서 구현해보았습니다. N = int(input()) if N == 0 or N == 1: print(1) else: fact = 1 for i in range(1, N + 1): fact = fact * i print(fa..

1일 최소 1문제 풀기 프로젝트 3일차! 오늘은 소인수 분해 문제를 풀어보려합니다. 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하는 문제입니다. 소인수분해 문제이니 2일차에 풀었던 에라토스테네스의 체 문제를 활용하여 소수를 구하고 그 소수를 활용하여 풀어보기로 했습니다. [BaeKJoon] 2960번: 에라토스테네스의 체 문제 풀이 (Python) 1일 최소 1문제 풀기! 2일차 오늘은 1일차의 백준 홈페이지에 있는 골드바흐의 추측 문제를 풀면서 계속 시간초과가 발생하여 살짝 힌트를 얻기위해 검색해보니! 에라토스테네스의 체 문제를 활용하여 풀면 해결.. somjang.ti..

1일 최소 1문제 풀기! 2일차 오늘은 1일차의 백준 홈페이지에 있는 골드바흐의 추측 문제를 풀면서 계속 시간초과가 발생하여 살짝 힌트를 얻기위해 검색해보니! 에라토스테네스의 체 문제를 활용하여 풀면 해결할 수 있다는 내용을 알게되어 먼저 풀게되었습니다. 2960번: 에라토스테네스의 체 문제 에라토스테네스의 체는 N보다 작거나 같은 모든 소수를 찾는 유명한 알고리즘이다. 이 알고리즘은 다음과 같다. 2부터 N까지 모든 정수를 적는다. 아직 지우지 않은 수 중 가장 작은 수를 찾는다. 이것을 P라고 하고, 이 수는 소수이다. P를 지우고, 아직 지우지 않은 P의 배수를 크기 순서대로 지운다. 아직 모든 수를 지우지 않았다면, 다시 2번 단계로 간다. N, K가 주어졌을 때, K번째 지우는 수를 구하는 프로..