일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Operating System
- error
- Java
- memory
- 기초100제
- 분할메모리할당
- react-redux
- OS
- 정렬
- 백준
- 파이썬
- 코드업
- react
- 토이프로젝트
- 협업
- 일상
- CPU 스케줄링
- codeup
- 스프링
- Spring
- 타입스크립트
- 공부
- 알고리즘
- web
- C++
- Redux
- 자료구조
- 리덕스장바구니
- js to ts
- 프로그래머스
- Today
- Total
목록파이썬 (157)
감자튀김 공장🍟
✔ 문제 ✔ 풀이 def get_hansu(n): hansu = 0 if n < 100: hansu = n else: hansu = 99 for i in range(100, n+1): num_list = list(map(int, str(i))) if num_list[0] - num_list[1] == num_list[1] - num_list[2]: hansu += 1 return hansu n = int(input()) print(get_hansu(n)) 입력받은 n을 한자리씩 쪼개 등차수열이 만들어지는지 확인해야한다. 1~99까지는 각 자리수의 차이가 1 또는 0이기 때문에 n이 100 미만인 경우는 입력받은 n의 값을 hansu의 값으로 return 해주면 된다. n이 100 이상인 경우에는 숫자를 ..
✔ 문제 ✔ 풀이 def d(n): n = n + sum(map(int, str(n))) # n과 n의 각 자릿수 합을 구한다 (ex. 37 = 37 + 3 + 7) return n Non = set() # 셀프 넘버가 아닌 수들이 들어갈 집합(중복 방지를 위해 set을 사용) for i in range(1, 10001): Non.add(d(i)) # 셀프 넘버가 아닌 수들을 구해 Non에 추가 for j in range(1, 10001): if j not in Non: # Non에 포함되지 않은 수(셀프 넘버)를 출력 print(j) ✔ 후기 1. 중복 방지를 위해 list가 아니라 set을 사용해야 한다는 점 2. 먼저 셀프 넘버가 아닌 수들을 구해서 집합에 저장해야한다는 점 3. not in을 사용..
✔ 문제 ✔ 풀이 sum()을 사용한 함수 def solve(a): return sum(a) for문을 사용한 함수 def solve(a): sum = 0 for i in a: sum += i return sum ✔ 후기 배열 a를 인자로 받아 배열의 요소 값을 return 하는 함수를 만들어야하는 문제이다. 배열을 입력 받는 것부터가 아니라 배열 요소들로 sum을 하는 함수를 구현하면 된다.
✔ 문제 ✔ 풀이 c = int(input()) for _ in range(c): scores = list(map(int, input().split())) avg = sum(scores[1:]) / scores[0] count = 0 for i in scores[1:]: if i > avg: count += 1 rate = count / scores[0] * 100 print('{0:0.3f}%'.format(rate)) ✔ 후기 학생들의 점수로 평균을 구하고, 그 평균을 넘는 학생들의 비율을 구하는 문제다. 평균값만 냅다 구해서 제출했다가 틀렸다고 떠서 뭐지... 하면서 문제를 다시 읽었다. avg 값을 구하고 for문을 돌려 각 점수가 avg 값보다 큰 경우의 갯수를 구한 후, 비율을 구하여 출력하면..
✔ 문제 ✔ 풀이 t = int(input()) for _ in range(t): ans = list(map(str, input())) count = 0 sum = 0 for s in ans: if s == 'X': count = 0 else: count += 1 sum += count print(sum) ✔ 후기 OX 답을 먼저 1차 배열로 받은 후 해당 배열의 요소들로 for 문을 돌려서 요소가 X이면 count를 0으로 초기화, O이면 count +1 및 sum에 count 값을 더하여 값을 구할 수 있다. 티스토리 코드 블럭에서 코드 짜면 백준에서 컴파일 오류 나더라...
✔ 문제 ✔ 풀이 n = int(input()) score = list(map(int, input().split())) max_s = max(score) for i in range(n): score[i] = score[i] / max_s * 100 print(sum(score) / n) ✔ 후기 max_s에는 max 함수를 사용해 score의 최댓값을 저장, for문으로 score에 새로운 점수를 계산해서 저장, sum 함수를 사용해 score 전체 합을 구한 후 과목의 수로 나눠 평균을 구했다.
✔ 문제 ✔ 풀이 numbers = [] for _ in range(10): x = int(input()) numbers.append(x % 42) numbers = set(numbers) print(len(numbers)) ✔ 후기 list가 아니라 set을 사용하면 중복 요소들을 하나만 남기고 다 제거한다. 42로 나눈 값들을 리스트에 저장한 후 타입을 set으로 바꾸고 해당 set의 길이를 구하면 된다.
✔ 문제 ✔ 풀이 numbers = [] for _ in range(9): x = int(input()) numbers.append(x) max_num = max(numbers) # 최대값 구하기 print(max_num, numbers.index(max_num) + 1)# .index()로 최댓값의 인덱스 구하기 ✔ 후기 list의 인덱스는 다른 언어의 배열과 똑같이 0부터 시작하기 때문에 최댓값의 인덱스를 구한 후 +1을 하여 출력한다.
✔ 문제 ✔ 풀이 n = int(input()) numbers = list(map(int, input().split())) print(min(numbers), max(numbers)) ✔ 후기 파이썬은 for문 없이 max(), min()을 통해 리스트 요소 중 가장 큰 값과 작은 값을 구할 수 있다.
✔ 문제 ✔ 풀이 n = int(input()) count = 0 num = n while True: sum = (num // 10) + (num % 10) new = (num % 10) * 10 + (sum % 10) count += 1 if new == n: break num = new print(count) ✔ 후기 계속 시간 초과가 떠서 뭐가 문제인가 삽질했는데 ⭕ new = (num % 10) * 10 + (sum % 10) ❌ new = (num % 10) * 10 + (sum // 10) 연산자를 잘못써서 계속 시간초과가 났었다.. ^_^....... 하아 오늘도 이렇게 정신 똑띠 차리고 코드 짜야한다는 것을 배웠다...