일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자료구조
- 파이썬
- CPU 스케줄링
- 타입스크립트
- js to ts
- 일상
- Redux
- react
- 프로그래머스
- 리덕스장바구니
- react-redux
- Spring
- 정렬
- 백준
- 코드업
- 스프링
- Java
- error
- 분할메모리할당
- C++
- Operating System
- OS
- 공부
- memory
- 토이프로젝트
- web
- 알고리즘
- codeup
- 협업
- 기초100제
- Today
- Total
목록알고리즘 (147)
감자튀김 공장🍟
✔ 문제 ✔ 풀이 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) 연산자를 잘못써서 계속 시간초과가 났었다.. ^_^....... 하아 오늘도 이렇게 정신 똑띠 차리고 코드 짜야한다는 것을 배웠다...
✔ 문제 ✔ 풀이 while(True): try: a, b = map(int, input().split()) except: break print(a+b) ✔ 후기 break 문을 쓸 조건이 문제에 따로 없어서 순간 멈칫했다... try ~ execpt 구문을 쓰면 a,b 입력이 없을 때 오류가 나면서 except의 break를 실행하게 된다. try ~ execpt의 존재를 까먹고 있어서 어떤 방법으로 풀어야하나 꽤 고민했었다😂
✔ 문제 ✔ 풀이 while(True): a, b = map(int, input().split()) if a == 0 and b == 0: break print(a+b) ✔ 후기 a와 b가 둘 다 0을 입력받기 전까지 while문으로 계속해서 a+b의 값을 출력한다. a,b가 0을 입력받은 후에는 break문으로 while문을 빠져나오게 된다.
✔ 문제 ✔ 풀이 n, x = map(int, input().split()) numbers = list(map(int, input().split())) for i in numbers: if i < x: print(i, end=' ') ✔ 후기 end=' ' 를 사용하면 \n 없이 원하는 변수를 한 줄에 출력할 수 있다.