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 감소, 그..
지난 포스팅에서는 List, Set, Map에 대해서 알아봤다. 이번에는 컬렉션에서 사용되는 함수에 대해 알아보자! 굉장히 많은 함수들이 있는데 오늘은 filter와 map 함수만 살펴보려 한다. filter filter 함수는 주어진 람다의 조건을 만족하는 원소만 필터링하는 기능이다. List와 Set을 필터링하는 경우에는 List로, Map을 필터링 하는 경우에는 Map으로 반환한다. filter 함수는 요소의 값만 확인할 수 있다. filterIndexed() : 인덱스를 통해 처리하고 싶을 때 사용하면 인덱스와 값에 접근할 수 있다. filterNot() : 지정된 조건과 일치하는 항목만 포함하는 리스트 반환 filterIsInstance() : 주어진 타입을 만족하는 원소 필터링. T 타입과 관..
코딩테스트 연습 - 여행경로 [["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
- 브루트포스
- BFS
- 알고리즘
- 프로그래머스
- algorithm
- programmers
- Java
- 트리
- SW Expert Academy
- Kotlin
- dfs
- SWEA
- 위상 정렬
- 문자열
- BOJ
- 스택
- C++
- 두 포인터
- 큐
- 이분 탐색
- 그래프
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |