SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제풀이 특정 단어를 트리 형태로 구성한 것을 in-order 형식으로 순회하여 원래 단어를 알아내는 문제다. [제약사항] 총 10개의 테스트 케이스가 주어지며, 총 노드의 개수는 100개를 넘어가지 않는다. 트리는 완전 이진 트리 형식으로 주어지며, 노드당 하나의 알파벳만 저장할 수 있다. 노드가 주어지는 순서는 위 그림과 같은 숫자 번호대로 주어진다. 트리가 갖는 정점의 총 수를 N이라 할 때, 트리가 완전 이진 트리 형식이기 때문에 N/2번 이하인 정점들만 자식을 가진다. 정점수가 짝수개인 경우에 N/2번째 정점은 왼쪽 그림에서 보이는 것처럼 왼쪽 자식만 가..
17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 문제풀이 오큰수 (Nearest Greater Element) Next Greater Element - GeeksforGeeks A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company inte..
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제풀이 비상연락망과 연락을 시작하는 당번에 대한 정보가 주어질 때, 가장 나중에 연락을 받게 되는 사람 중 번호가 가장 큰 사람을 구하는 문제다. 위 그림은 비상연락망을 나타낸 그림이고 각 원은 개개인을 의미하며, 원 안의 숫자는 그 사람의 번호이다. 빨간원은 연락을 시작하는 당번을 의미하고 화살표는 연락이 가능한 방향을 의미한다. 가장 나중에 연락을 받게 되는 사람을 찾기 위해서 BFS를 통해 depth 배열에 연락받는 순서를 저장해주었다. 그림을 보면서 설명을 해보겠다! 먼저 연락을 시작하는 당번은 1로 둔다. 비상연락망이 가동되면 2번은 연락가능한 7번과 ..
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제풀이 16x16 행렬의 형태로 만들어진 미로에서 출발점으로부터 도착지점까지 갈 수 있는 길이 있는지 판단하는 문제다. 흰색 바탕은 길, 노란색 바탕은 벽이다. 입력받을 때는 1은 벽을 나타내며 0은 길, 2는 출발점, 3은 도착점을 나타낸다. BFS를 통해서 출발점에서 도착점에 도달할 수 있는지 확인할 수 있다. 각 칸에서 상, 하, 좌, 우 인접한 방향으로 이동할 수 있으며 길인 칸으로만 갈 수 있다. 한 번 방문했던 칸으로는 다시 갈 수 없다. 코드 C++ 코드 Java 코드
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제풀이 다음 주어진 조건에 따라 n개의 수를 처리하면 8자리의 암호를 생성할 수 있다. 8개의 숫자를 입력 받는다. 첫 번재 숫자를 1 감소한 뒤, 맨 뒤로 보낸다. 다음 첫 번째 수는 2 감소한 뒤 맨 뒤로, 그 다음 첫 번재 수는 3을 감소하고 맨 뒤로, 그 다음 수는 4, 그 다음 수는 5를 감소한다. 이와 같은 작업을 한 사이클이라 한다. 숫자가 감소할 때 0보다 작아지는 경우 0으로 유지되며, 프로그램은 종료된다. 이 때의 8자리 숫자 값이 암호가 된다. Queue를 사용하여 문제를 풀 수 있다. 숫자를 입력받은 후에 제일 앞에 있는 수를 1 감소, 그..
코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 문제풀이 주어진 항공권을 모두 이용하여 여행경로를 짜려고 한다. 항상 "ICN" 공항에서 출발한다. 가능한 경로가 2개 이상일 경우에는 알파벳 순서가 앞서는 경로를 리턴한다. 주어진 항공권은 모두 사용해야 한다. 이 문제에서 주의해야 할 점은 주어진 항공권을 모두 써야한다는 것이다. 알파벳 순서가 앞서는 경로를 선택해서 갔을 때 항공권을 모두 사용하지 못하는 경우가 있다. 테케 하나를 예로 살펴보자. [["ICN", "BOO"]..
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제풀이 문자열로 이루어진 계산식이 주어질 때, 계산식을 후위 표기식으로 바꾸어 계산하는 문제다. "3+(4+5)*6+7"라는 문자열을 후위 표기식으로 바꾸는 과정은 어떻게 될까? 입력 받은 계산식에서 토큰을 읽는다 토큰이 피연산자, 즉 숫자면 토큰을 출력한다 토큰이 연산자(괄호 포함)일 경우 스택이 비었거나 top보다 우선순위가 높으면 스택에 push 우선순위가 높지 않으면 연산자의 우선순위가 토큰의 우선순위보다 작을때까지 스택에서 pop한 후 토큰의 연산자를 push한다 토큰이 오른쪽 괄호 ')'일 경우 스택 top에 왼쪽 괄호 '('가 올 때까지 pop 연산..
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제풀이 해야 할 V개의 작업이 있는데 어떤 작업은 특정 작업이 끝나야 시작할 수 있다. 이를 선행 관계라 한다. 이런 작업의 선행 관계를 나타낸 그래프가 주어졌을 때, 한 사람이 한 번에 하나씩 일할 수 있는 작업 순서를 찾는 문제다. 위상 정렬을 사용하여 문제를 해결했다. 선행 관계를 입력받아서 그래프를 만들어주고 cnt 배열에 각 정점이 가지는 선행 정점의 수를 저장한다. 작업 순서를 찾기 위해 먼저 cnt[i]가 0인 정점들을 큐에 넣어준다. cnt[i] = 0은 선행 정점이 없으므로 바로 작업을 처리할 수 있다. 큐에서 정점을 하나씩 꺼내면서 정점을 출력..
- Total
- Today
- Yesterday
- 구현
- 이분 탐색
- 스택
- 분할 정복
- Two Pointer
- C++
- Kotlin
- programmers
- dfs
- SWEA
- 자바
- BFS
- 배열
- 트리
- 두 포인터
- SW Expert Academy
- algorithm
- 위상 정렬
- 알고리즘
- 백준
- 문자열
- 재귀
- Java
- 정렬
- 브루트포스
- 큐
- BOJ
- 투 포인터
- 그래프
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |