📚 문제 입력 출력 예제 입력 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()))..
📚 문제 입력 출력 예제 입력 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: ..
📚 문제 입력 출력 예제 입력 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
📚 문제 입력 출력 예제 입력 1 pikapi예제 출력 1 YES예제 입력 2 pipikachu예제 출력 2 YES예제 입력 3 pikaqiu예제 출력 3 NO예제 입력 4 piika예제 출력 4 NO예제 입력 5 chupikachupipichu예제 출력 5 YES🧑🏻💻 풀이 과정 입력받은 단어에 pi가 있으면 ' '으로 변환한다. 입력받은 단어에 ka가 있으면 ' '으로 변환한다. 입력받은 단어에 chu가 있으면 ' '으로 변환한다. 마지막으로 ' '를 ''으로 변환한다.(처음부터 ''로 변환하지 않고, ' '로 변환 후 ''로 변환하는 이유는 kpia같은 단어를 ''로 변..
📚 문제 입력 출력 예제 입력 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())
📚 문제 입력 출력 예제 입력 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..
📚 문제 입력 출력 예제 입력 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 ..
📚 문제 입력 출력 예제 입력 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..
📚 문제 입력 출력 예제 입력 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
📚 문제 입력 출력 예제 입력 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
- 인프런
- 그리디
- 스프링부트
- 자료구조
- 데이터베이스
- 노마드
- 문자열
- Real MySQL
- 김영한
- mysql 8.0
- Algorithm
- webflux
- 정렬
- spring boot
- 스프링 부트
- MySQL
- 백준
- 북클럽
- 코테
- leetcode
- 노마드코더
- 구현
- 알고리즘
- 코틀린
- 릿코드
- 스프링
- kotlin
- 리팩토링
- 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |