SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 사칙연산으로 구성되어 있는 식은 이진 트리로 표현할 수 있다. 아래는 식 "(9/(6-4))*3"을 이진 트리로 표현한 것이다. 임의의 정점에 연산자가 있으면 해당 연산자의 왼쪽 서브 트리의 결과와 오른쪽 서브 트리의 결과를 사용해서 해당 연산자를 적용한다. 사칙연산 "+, -, *, /"와 양의 정수로만 구성된 임의의 이진트리가 주어질 때, 이를 계산한 결과를 출력하는 프로그램을 작성하라. 제약사항 정점의 총 수 N은 1≤N≤1000. 문제풀이 tree 배열을 2차원으로 선언해서 연산자 or 숫자, 왼쪽 자식, 오른쪽 자식 정보를 저장해주었다. 연산자일 경..
코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 문제 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트..
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제풀이 특정 단어를 트리 형태로 구성한 것을 in-order 형식으로 순회하여 원래 단어를 알아내는 문제다. [제약사항] 총 10개의 테스트 케이스가 주어지며, 총 노드의 개수는 100개를 넘어가지 않는다. 트리는 완전 이진 트리 형식으로 주어지며, 노드당 하나의 알파벳만 저장할 수 있다. 노드가 주어지는 순서는 위 그림과 같은 숫자 번호대로 주어진다. 트리가 갖는 정점의 총 수를 N이라 할 때, 트리가 완전 이진 트리 형식이기 때문에 N/2번 이하인 정점들만 자식을 가진다. 정점수가 짝수개인 경우에 N/2번째 정점은 왼쪽 그림에서 보이는 것처럼 왼쪽 자식만 가..
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 감소, 그..
11265번: 끝나지 않는 파티 입력의 첫 번째 줄에는 파티장의 크기 N(5 ≤ N ≤ 500)과 서비스를 요청한 손님의 수 M(1 ≤ M ≤ 10,000) 이 주어진다. 각각의 파티장은 1번부터 N번까지 번호가 붙여져 있다. 다음에는 N개의 줄에 걸 www.acmicpc.net 문제풀이 플로이드 와샬에 대한 자세한 내용은 아래 포스팅을 참고해주세요:) 플로이드 와샬 알고리즘(Floyd Warshall Algorithm) 플로이드 와샬 알고리즘이란? '모든 정점'에서 '모든 정점'으로의 최단 경로를 구하는 알고리즘 다익스트라 알고리즘과의 차이점 다익스트라는 하나의 정점에서 다른 모든 정점까지의 최단 경 woojeenow.tistory.com 플로이드 와샬 알고리즘으로 각 파티장끼리의 최소 이동 시간을 구..
10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 문제풀이 적록색약이 아닌 사람이 봤을 때의 구역수를 DFS로 구할 때 초록색인 구역은 빨간색으로 바꿔준다. 그리고 다시 적록색약인 사람이 봤을 때의 구역수를 DFS로 구해준다. C++ 코드
- Total
- Today
- Yesterday
- 투 포인터
- 위상 정렬
- 프로그래머스
- 재귀
- 그래프
- Java
- 스택
- 알고리즘
- dfs
- 이분 탐색
- BOJ
- 브루트포스
- 자바
- 큐
- Two Pointer
- SW Expert Academy
- Kotlin
- 트리
- 정렬
- programmers
- 배열
- C++
- 구현
- 두 포인터
- 분할 정복
- BFS
- SWEA
- 백준
- algorithm
- 문자열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |