일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준
- Recursion: Davis' Staircase
- 피보나치 함수
- candies
- Roads and Libraries
- 프로그래머스
- 격파르타 장점
- 매칭점수
- Find the nearest clone
- 알고리즘
- 격파르타 후기
- Max Array Sum
- Interview Preparation Kit
- Common Child
- 격파르타 합격후기
- [sqld]자격증합격
- 야근지수
- programmers
- 파이썬
- 해커랭크
- 머신러닝
- BFS: Shortest Reach in a Graph
- 코딩테스트
- hackerrank
- Algorithm
- 구슬탈출2
- DFS: Connected Cell in a Grid
- python
- Reverse Shuffle Merge
- Special String Again
- Today
- Total
목록공부/Algorithm (40)
Archive
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/42893 코딩테스트 연습 - 매칭 점수 매칭 점수 프렌즈 대학교 조교였던 제이지는 허드렛일만 시키는 네오 학과장님의 마수에서 벗어나, 카카오에 입사하게 되었다. 평소에 관심있어하던 검색에 마침 결원이 발생하여, 검색개발팀� programmers.co.kr 풀이 특정 단어 word, html 소스로 구성된 pages를 입력으로 받음. 각 page별로 word에 대한 점수를 부여해야 하는데 다음 과정으로 구함. 본문(body tag)에서 word의 개수를 기본 점수로 정함. 본문은 알파벳을 제외한 다른 문자로 구별가능하고, 대소문자 상관 없이 word와 딱 맞아야함. word = 'abc', body에 'abcd',..
https://www.hackerrank.com/challenges/find-the-nearest-clone/problem Find the nearest clone | HackerRank Find the shortest path length between any two nodes with the given condition. www.hackerrank.com 풀이 그래프 정보와 각 노드의 색깔 저보가 주어짐. 특정 색깔을 입력받았을 때 같은 색깔의 다른 노드에 도달할 수 있는 최단 거리를 구하는 문제 먼저 adj_matrix를 만들어주는데, 파이썬의 dictionary를 사용. key : node, value : [인접 노드] 방향이 없기 때문에 graph_from, graph_to에 있는 노드를 번갈아..
https://www.hackerrank.com/challenges/torque-and-development/problem Roads and Libraries | HackerRank Help the ruler of HackerLand determine the cheapest way to give his citizens access to libraries. www.hackerrank.com 풀이 그래프가 주어졌을 때 dfs로 전체 node를 방문하기 위한 경로를 세는 문제 첫 번째로 도서관 짓는 비용 c_lib이 길을 설치하는 비용 c_road보다 작을 경우 각 node에 도서관을 짓는다고 보면 됨. dictionary를 사용해 인접행렬을 구현했고, 방향이 없기 때문에 시작노드, 끝 노드를 각각의 valu..
https://programmers.co.kr/learn/courses/30/lessons/12927 코딩테스트 연습 - 야근 지수 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도 programmers.co.kr 풀이 야근 시간 n시간, 처리해야할 업무 리스트 works를 입력으로 받음. 야근 지수 = n시간동안 works의 일을 처리(숫자 감소) 후 남아있는 원소의 제곱 합 n시간동안 매번 큰 수를 찾아서 1씩 감소시킨 후 제곱합을 구하면 됨. 리스트의 내장함수 [].index(element)는 O(n)이기 때문에 시간초과 남. "리스트의 max valu..