일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CPU 스케줄링
- 기초100제
- 프로그래머스
- C++
- Spring
- OS
- Redux
- memory
- js to ts
- 분할메모리할당
- error
- 스프링
- 정렬
- 파이썬
- 타입스크립트
- 토이프로젝트
- 코드업
- 자료구조
- 알고리즘
- 공부
- Operating System
- 협업
- codeup
- Java
- 일상
- 백준
- react
- react-redux
- web
- 리덕스장바구니
- Today
- Total
목록파이썬 (157)
감자튀김 공장🍟
✔ 문제 ✔ 풀이 n = int(input()) cnt = n for i in range(n): s = input() for j in range(0, len(s) - 1): # s[j+1]까지 검사해야하니까 len(s)-1까지 for문을 돌림 if s[j] == s[j+1]: pass # 현재 알파벳이 다음 글자랑 같다면 pass elif s[j] in s[j+1:]: # 현재 알파벳이 남은 s에 더 있다면 그룹 단어가 아니므로 cnt-1 cnt -= 1 break print(cnt) ✔ 후기 막상 이렇게 구현해야지! 하고 시작하면 구현까지 시간도 오래 걸리고 구현도 잘 안된다........... 고민 하는 시간을 더 길게 가져보고 연습도 더 해봐야겠다.. ୧༼ ” ✖ ‸ ✖ ” ༽୨
✔ 문제 ✔ 풀이 😥 틀린 코드 croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] s = input() count = 0 for i in croatia: if s.find(i) != -1: count += 1 s = s.replace(i, '') count += len(s) print(count) find 함수를 써서 croatia 알파벳이 있다면 count 숫자를 +1 한 후 해당 알파벳을 ''으로 대체해서 없애버렸다. 그리고 남는 s의 길이를 구해 count에 더하는 방법으로 구현했다. 이렇게 했더니 예제는 다 맞게 나오는데 내가 모르는 예제에서 틀리는 것 같다. 대충 감이 오는게 만약 'c=nd-jk' 이런 문자열이 온다면 1. c= 제거 후..
✔ 문제 ✔ 풀이 alp = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ'] s = input() count = 0 for i in alp: for j in i: # 2~9번 다이얼 중 어디에 있는 지 for k in s: # s의 알파벳이 해당 다이얼의 알파벳에 있는 지 확인 if j == k: count += alp.index(i) + 3 # 만약 k가 a라면 3초가 걸리지만 index는 0이기 때문에 index(i) + 3을 한다 print(count) ✔ 후기 3중 for문이라 엥? 스럽지만 제일 직관적이다. s를 각 문자열로 나눠서 list로 만들려고 했는데 그냥 in s 하면 되는거였다. 항상 숫자 입력 받을 때 list(map()) 했..
✔ 문제 ✔ 풀이 a, b = map(int, input().split()) a = (a // 100) + ((a % 100) // 10) * 10 + (a % 10) * 100 b = (b // 100) + ((b % 100) // 10) * 10 + (b % 10) * 100 print(max(a, b)) ✔ 후기 그냥 a ,b를 int가 아니고 str로 입력 받아 a[::-1]로 역순 배치를 할 수도 있었는데 제일 직관적이게 짜봤다. 몫과 나머지를 헷갈리지 않고 구해야하기 때문에 나처럼 정신놓고 육포 먹으면서 짜면 틀릴 수도 있음 ㅎ_ㅎ
✔ 문제 ✔ 풀이 s = list(map(str, input().split())) print(len(s)) ✔ 후기 split()을 기준으로 단어들을 나눠 리스트에 저장한 후 그 리스트의 길이를 출력하면 된다.
✔ 문제 ✔ 풀이 s = input().upper() # 대문자로 통일 (대문자로 출력하니까) word_list = list(set(s)) # s에 중복된 알파벳 제거 count_list = [s.count(i) for i in word_list] # word_list에 있는 알파벳의 개수를 저장 # count_list에 max 값이 여러개가 있다면 '?'을 출력 if count_list.count(max(count_list)) > 1: print('?') # max 값이 하나라면 count_list의 인덱스를 구해 word_list에서 해당 알파벳을 출력 # word_list와 count_list의 인덱스에 들어있는 요소(알파벳 - 개수)의 순서는 똑같음 else: print(word_list[coun..
✔ 문제 ✔ 풀이 t = int(input()) for _ in range(t): r, s = input().split() r = int(r) text = '' for i in s: text += r * i print(text) ✔ 후기 맨 처음 r이 int형이 아니기 떄문에 r * i를 할 경우 TypeError가 뜬다. 그렇기 때문에 int()로 r의 형을 변환시켜준 다음 사용하면 된다.
✔ 문제 ✔ 풀이 alp = [-1] * 26 s = list(input()) for i in s: x = ord(i) alp[x-97] = s.index(i) print(*alp) ✔ 후기 구현은 제대로 한 것 같은데 틀렸다고 하길래 어디가 틀렸는지 엄청 고민했다.. 출력 형식이 달라서 계속 틀렸다 뜬거였다. print(*리스트) 를 하게 되면 [1, 2, 3]이 아니라 1 2 3 형식으로 출력이 된다.
✔ 문제 ✔ 풀이 n = int(input()) numbers = list(map(int, input())) print(sum(numbers)) ✔ 후기 numbers = list(map(int, input())) 을 통해 숫자를 리스트에 저장할 수 있게 입력받은 후 sum()을 이용하여 리스트의 합을 구한다.