![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b30vqw/btrNo7rFBEI/E9evvpwiKzcQefdljxtFUK/img.png)
📚 문제 입력 출력 예제 입력 5 Mickey 1 10 1991 Alice 30 12 1990 Tom 15 8 1993 Jerry 18 9 1990 Garfield 20 9 1990예제 출력 Tom Jerry🧑🏻💻 풀이 과정 이름, 일자, 월. 년을 입력받아, 일자나 월이 한 자리라면 앞에 0을 추가해서 두 자리로 만든 뒤 arr에 추가하자. arr의 생년월일을 기준으로 정렬하자. (sorted_arr = sorted(arr, key=lambda x: x[1])) 정렬된 데이터의 맨 뒤가 가장 나이가 적은 사람(sorted_arr[-1][0]), 맨 앞이 가장 나이가 많은 사람(sorted_arr[0][0])이다. def init(): arr = [] for _ in range(int(input()))..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/TdHV4/btrLYj6QIm8/TmQSHzn2ShHdDSCna1xTMk/img.png)
📚 문제 입력 출력 예제 입력 1 ljes=njak예제 출력 1 6예제 입력 2 ddz=z=예제 출력 2 3예제 입력 3 nljj예제 출력 3 3예제 입력 4 c=c=예제 출력 4 2예제 입력 5 dz=ak예제 출력 5 3🧑🏻💻 풀이 과정 크로아티아 문자를 리스트(croatia)로 만들어 반복하면서 입력받은 문자(word) 중, 일치하는 크로아티아 문자가 있으면 *로 치환하자. 문자의 길이를 반환하자. def croatia_alphabet(word): croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] for i in croatia: ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/5Q1y5/btrLPn96UlI/aUDtdGc2pioyILPMv8ldOk/img.png)
📚 문제 입력 출력 예제 입력 4 6 3 5 2 1예제 출력 4🧑🏻💻 풀이 과정 이중 반복문으로 소의 크기(cows)를 반복하며 두 소의 크기가 사이즈(s) 이하이면 카운트(count)를 1 증가시키자. python3로 이중 반복문을 사용한 경우, 시간초과가 발생하므로 pypy3로 제출하자. PyPy3 import sys def costume_party(cows): count = 0 for i in range(len(cows)): for j in range(i + 1, len(cows)): sum_size = cows[i] + cows[j] if sum_size
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bBCbhg/btrLLiBC7bZ/ByKGNsQYHGZKroqkOqR530/img.png)
📚 문제 입력 출력 예제 입력 1 pikapi예제 출력 1 YES예제 입력 2 pipikachu예제 출력 2 YES예제 입력 3 pikaqiu예제 출력 3 NO예제 입력 4 piika예제 출력 4 NO예제 입력 5 chupikachupipichu예제 출력 5 YES🧑🏻💻 풀이 과정 입력받은 단어에 pi가 있으면 ' '으로 변환한다. 입력받은 단어에 ka가 있으면 ' '으로 변환한다. 입력받은 단어에 chu가 있으면 ' '으로 변환한다. 마지막으로 ' '를 ''으로 변환한다.(처음부터 ''로 변환하지 않고, ' '로 변환 후 ''로 변환하는 이유는 kpia같은 단어를 ''로 변..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/vioxp/btrLDPTc7Ph/kXAmZkaJmDlZn1nE7k1471/img.png)
📚 문제 입력 출력 예제 입력 1 4 cat dog god tca예제 출력 1 2예제 입력 2 2 a a예제 출력 2 1🧑🏻💻 풀이 과정 입력 받은 단어를 정렬해서 set(ans)에 저장하자. ans의 길이를 반환하자. def equal_word_group_by(): n = int(input()) arr = [input() for _ in range(n)] ans = set("".join(sorted(i)) for i in arr) return len(ans) print(equal_word_group_by())
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/disgkr/btrLxZvag8T/S00DlfmE0Li5B30bkyglUk/img.png)
📚 문제 입력 출력 예제 입력 2 5 aaba ba ababa bbaa baaba 3 abc bcd cde예제 출력 abababa 0🧑🏻💻 풀이 과정 이중 반복문을 이용해서 단어의 갯수만큼 반복하자. 같은 단어는 합치면 안 되므로 조건문으로 단어가 서로 다른지 확인하자.(if i != j) 각 단어를 합친 결과(word)와 뒤집은 결과를 비교(if word == word[::-1])하자. 팰린드롬을 찾았으면 해당 단어를 반환하고, 찾지 못했다면 0을 반환하자. 결과 값이 0이면 0을 출력하고, 팰린드롬이면 단어를 출력하자. (print(0) if ans == 0 else print(ans)) def palindrome(): n = int(input()) arr = [input() for _ in ran..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Orhh4/btrLuw7B4T4/4mNPAUQ5hfqDTDLAaIJMi0/img.png)
📚 문제 입력 출력 예제 입력 8 28예제 출력 8 9 18 15 14 19 11 17 16 13 12 10 28 25 24 21 27 26 23 22 20🧑🏻💻 풀이 과정 숫자를 단어로 변환하기 위한 딕셔너리(word_dict)를 선언하자. m부터 n까지의 숫자를 하나씩 가져온 뒤, 숫자 -> 문자로 변환(word = str(i))해서 다시 반복하면서 2자리 이상이면 변환된 단어뒤에 " "를 추가해서 저장하고, 한 자리면 변환된 단어만 저장하자. 이렇게 구한 값을 문자를 키로, 숫자를 값으로 저장(_dict)하자. 키(문자)를 오름차순 정렬해서 출력하자. import sys def number_game(m, n): global word_dict _dict = {} for i in range(m, n ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ZB90I/btrK9Z9nVp8/7zFJVIOBkPPDdpKsKjf58K/img.png)
📚 문제 입력 출력 예제 입력 3 4 ohhenrie charlie baesangwook obama baesangwook ohhenrie clinton예제 출력 2 baesangwook ohhenrie🧑🏻💻 풀이 과정 딕셔너리를 이용하면 간단하게 해결 가능하다. 이름을 입력받아 딕셔너리(_dict)를 초기화하면서 1증가 시키자. _dict[name]에 저장된 값이 1보다 크다는 것은 듣도 보도 못했다는 뜻이므로, 리스트(ans)에 따로 저장하면서 size를 1 증가시키자. size와 ans를 출력하자. import sys def no_listen_no_see(n, m): _dict = {} size = 0 ans = [] for _ in range(n + m): name = sys.stdin.readl..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/wyVjK/btrK5D6D2Uk/3P9GFgm8DKUmFHOyn0nXX0/img.png)
📚 문제 입력 출력 예제 입력 5 6 3 2 10 -10 8 10 9 -5 2 3 4 5 -10예제 출력 1 0 0 1 1 0 0 1🧑🏻💻 풀이 과정 전형적인 이분탐색을 요구하는 문제. 비교할 카드를 0부터 비교할 카드의 길이 -1 동안 반복하며 상근이의 카드 중, 일치하는 카드가 나오면 1, 아니면 0을 ans에 저장하자. join을 이용해서 결과를 출력하자. 여담으로 딕셔너리나 set을 이용해서도 풀 수 있다고 한다. import sys def binary_search(arr, target, start, end): while start
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/GVQVy/btrK0L5i7o1/F0Q5h19PqlhgFUKrpad0l0/img.png)
📚 문제 입력 출력 예제 입력 1 4 4 10 20 30 40 1 O X X X 2 X O X X 3 X X O X 4 X X X O예제 출력 1 4 40예제 입력 2 4 8 10 20 30 40 1 O X X X 2 X O X X 3 X X O X 4 X X X O 80 O O O O 70 O O O O 60 O O O O 50 O O O O예제 출력 2 50 100🧑🏻💻 풀이 과정 입력 받은 수험번호(num)을 딕셔너리(_dict)에 추가하고, 반복하면서 채점결과(arr)가 O라면 점수를 더 해주자. 가장 높은 점수를 받은 학생 중, 가장 낮은 수험번호를 구하기 위해 min_student를 1000001로 초기화하자. 딕셔너리(_dict)를 반복하면서 최대 점수와 같은 요소의 k를 min_stude..
- Total
- Today
- Yesterday
- 구현
- 정렬
- 리팩토링
- 스프링 부트
- 북클럽
- 알고리즘
- spring boot
- 인프런
- 데이터베이스
- 노마드
- 김영한
- Spring
- 스프링
- 그리디
- Algorithm
- 릿코드
- mysql 8.0
- 코틀린
- 자료구조
- webflux
- 파이썬
- 스프링부트
- kotlin
- Real MySQL
- 노마드코더
- 문자열
- leetcode
- 백준
- 코테
- MySQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |