일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 야근지수
- 프로그래머스
- 백준
- 매칭점수
- python
- 파이썬
- 구슬탈출2
- 해커랭크
- [sqld]자격증합격
- 격파르타 후기
- 알고리즘
- Recursion: Davis' Staircase
- programmers
- Reverse Shuffle Merge
- Roads and Libraries
- 머신러닝
- 코딩테스트
- hackerrank
- Algorithm
- Interview Preparation Kit
- Special String Again
- 격파르타 장점
- DFS: Connected Cell in a Grid
- 격파르타 합격후기
- BFS: Shortest Reach in a Graph
- Max Array Sum
- 피보나치 함수
- Common Child
- candies
- Find the nearest clone
- Today
- Total
목록Archive (77)
Archive
www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 풀이 deque를 사용한 bfs로 품 from collections import deque def bfs(start, end): cnt = 0 # [현재 위치, 현재까지 걸린 시간] pair queue = deque([[start, cnt]]) # 문제 조건에 0~100000 위치까지로 명시됨. # 방문안한 위치만 queue에 값 추가해서 탐색 visited = [False] * 10..
www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 풀이 처음에는 case로 나누고 조건에 맞게 문자열 추가하는 방법 수행(실패, 시간초과) # 실패 edit_text = str(input()) edit_text_len = len(edit_text) cur_pointer = edit_text_len command_num = int(input()) for _ in range(command_num): command = input().split(' ') if comma..
www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 풀이 1 ~ N까지 전체 iteration수행 정답을 target에 리스트형태로 저장. stack, target을 비교하면서 push, pop연산 수행 n과 target값과 같으면 stack의 값을 역순으로 다시 확인하면서 push, pop연산 수행. N = int(input()) target = [int(input()) for ..
www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 풀이 n = int(input()) ans = [] for _ in range(n): input_p = input() cnt = 0 for p in input_p: if p == '(': cnt += 1 else: cnt -= 1 if cnt < 0: break if cnt == 0: ans.append('YES') else: ans.append("NO") for a in ans:..
www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 풀이 경우에 맞게 구현 n = int(input()) stack = [] ans = [] for _ in range(n): input_order = input().split(' ') if input_order[0] == 'push': stack.insert(0, input_order[1]) elif input_order[0] == 'pop': if len(stack): ans.append(st..
www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 풀이 문장 입력받으면 split()을 사용해 띄어쓰기 단위로 단어 구분 -> 각각의 단어를 뒤집음. n = int(input()) ans = [] for _ in range(n): sen = input().split(' ') ans.append([i[::-1] for i in sen]) for a in ans: print(' '.join(a))
https://programmers.co.kr/learn/courses/30/lessons/42892 코딩테스트 연습 - 길 찾기 게임 [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr 풀이 입력으로 [x, y] 좌표 데이터를 원소로 하는 리스트를 받아 조건에 맞게 이진트리를 만든 뒤 전위 순회, 후위 순회했을 때 방문해야할 노드 index리스트를 반환하는 문제 y값이 level이라 먼저 y값으로 내림차순, x값은 오름차순으로 동시에 정렬하면 순차적으로 node를 추가할 수 있음. 전위 순회, 후위 순회는 재귀함수를 사용하면 간단히 구현할 수 있..
https://programmers.co.kr/learn/courses/30/lessons/42893 코딩테스트 연습 - 매칭 점수 매칭 점수 프렌즈 대학교 조교였던 제이지는 허드렛일만 시키는 네오 학과장님의 마수에서 벗어나, 카카오에 입사하게 되었다. 평소에 관심있어하던 검색에 마침 결원이 발생하여, 검색개발팀� programmers.co.kr 풀이 특정 단어 word, html 소스로 구성된 pages를 입력으로 받음. 각 page별로 word에 대한 점수를 부여해야 하는데 다음 과정으로 구함. 본문(body tag)에서 word의 개수를 기본 점수로 정함. 본문은 알파벳을 제외한 다른 문자로 구별가능하고, 대소문자 상관 없이 word와 딱 맞아야함. word = 'abc', body에 'abcd',..