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 감소, 그..
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제풀이 테이블 위에 자성체들이 있다. 푸른 자성체의 경우 N극에 이끌리는 성질을 가지고 있고, 붉은 자성체의 경우 S극에 이끌리는 성질이 있다. 테이블에서 일정 간격을 두고 강한 자기장을 걸었을 때, 시간이 흐른 뒤에 자성체들이 서로 충돌하여 테이블 위에 남아있는 교착 상태의 개수를 구하는 문제다. 화살표와는 상관없이 N극, S극 쌍을 찾는 문제로 그림에서는 7개이다. 처음에는 어렵게 생각해서 A, B와 같은 자성체들은 없애고 남은 자성체들을 모아서 카운트하려 했다. 하지만 그렇게 하니 정답이 잘 안나와서 다른 방법을 생각하게 되었다. N극, S극 쌍을 찾는 문..
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제풀이 어느 사다리를 고르면 X표시에 도착하는지 구하는 문제다. y = 0에서 X표시에 도착하는 사다리를 찾으려면 어려울 수 있지만 X표시에서 y = 0인 출발점으로 도착할 수 있는 사다리를 구하는 것은 쉽다. y = 99에서 위로 올라가면서 왼쪽과 오른쪽으로 이동할 수 있는 칸이 있는지 확인한다. 이동할 수 있는 가로선이 있다면 이동하면 되는데 한쪽 방향으로만 이동할 수 있다는 것을 주의해주자! 왼쪽으로 이동했으면 왼쪽으로만 가야지 왼쪽 갔다가 오른쪽으로 가면 안된다. 위 과정을 반복하다가 y = 0에 도착하면 사다리를 찾은 것이다! 문제에서는 행을 y, 열을..
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제풀이 100 X 100 크기의 2차원 배열이 주어질 때, 그림과 같이 각 행의 합, 각 열의 합, 각 대각선의 합 중 최댓값을 찾는다. 각 행의 합, 열의 합은 쉽게 구할 수 있을 것이라 생각한다. 오른쪽 아래로 향하는 대각선은 i == j, 왼쪽 아래로 향하는 대각선은 i + j == 99인 원소를 더해주면 된다. 코드 C++ 코드 Java 코드
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제풀이 그림과 같이 노란색 상자들이 쌓여있다. 높은 곳의 상자를 낮은 곳에 옮기는 방식으로 최고점과 최저점의 간격을 줄이는 평탄화 작업을 하려고 한다. 제한된 작업 횟수 동안 평탄화 작업을 수행하고 최고점과 최저점의 차이를 구하는 문제다. 가장 높은 곳에 있는 상자를 가장 낮은 곳으로 옮기는 작업을 덤프라고 한다. 1회 덤프 때 A에 있는 상자를 B부분에 덤프하였다. 2회 덤프 수행 시에는 A에 있는 상자를 C부분에 덤프하였다. 덤프 횟수가 2회로 제한되어 있다면 정답은 6이 된다. 주어진 덤프 횟수 이내에 평탄화과 완료되면 덤프 작업을 멈추고 최고점과 최저점의..
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제풀이 그림과 같이 빌딩들이 지어져 있다. 이 지역에서는 왼쪽과 오른쪽으로 창문을 열었을 때, 양쪽 모두 거리 2 이상의 공간이 확보될 때 조망권이 확보된다고 말한다. 빌딩들에 대한 정보가 주어질 때 조망권이 확보된 세대의 수를 찾는 문제다. 양쪽 모두 거리 2 이상의 공간이 확보된다면 조망권이 확보되므로 2 이하의 거리들만 확인해주면 된다. 양쪽 건물들 중에서 현재 건물의 높이보다 큰 건물이 있다면 조망권 확보 실패 현재 건물보다 높이가 낮은 건물들 중 제일 높은 건물과의 높이 차이를 계산하면 조망권이 확보된 세대의 수를 찾을 수 있다! 코드 C++ 코드 Ja..
- Total
- Today
- Yesterday
- 그래프
- 두 포인터
- 정렬
- 브루트포스
- 이분 탐색
- Two Pointer
- BOJ
- 재귀
- 배열
- 자바
- Kotlin
- 스택
- 백준
- 분할 정복
- 구현
- 문자열
- 위상 정렬
- C++
- dfs
- 알고리즘
- 트리
- 큐
- programmers
- Java
- 투 포인터
- 프로그래머스
- SWEA
- SW Expert Academy
- BFS
- 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 |