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..
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제풀이 10개의 테스트 케이스마다 테스트 케이스 번호, 1000명의 점수가 주어진다. 최빈수를 찾기 위해서 cnt 배열에 각 점수가 몇 번 나타나는지 카운트해준다. 최빈수가 여러 개 일 때에는 가장 큰 점수를 출력하라고 했으므로 cnt[i]가 maxCnt 이상일 경우에 갱신해준다. 코드 C++ 코드 Java 코드
Collection이란? Collection(컬렉션)은 대부분의 프로그래밍 언어에 있는 자료구조로, 객체의 모음이라 할 수 있다. 컬렉션은 Generic으로 구현이 되어 다양한 타입과 함께 사용할 수 있다. 코틀린에는 List, Set, Map 3가지 컬렉션이 있다. List, Set, Map 모두 Mutable과 Immutable을 별개로 지원한다. Mutable vs Immutable Mutable은 가변. read&write로 생성된 이후 값을 변경할 수 있다. 반면 Immutable은 불변. read-only로 생성된 이후에 값을 수정할 수 없다. 코틀린의 컬렉션들은 아래와 같은 상속 구조를 가지고 있다. 간단하게 예제를 작성해보면서 컬렉션을 어떻게 사용하는지 알아보자! List 리스트는 데이터를..
11265번: 끝나지 않는 파티 입력의 첫 번째 줄에는 파티장의 크기 N(5 ≤ N ≤ 500)과 서비스를 요청한 손님의 수 M(1 ≤ M ≤ 10,000) 이 주어진다. 각각의 파티장은 1번부터 N번까지 번호가 붙여져 있다. 다음에는 N개의 줄에 걸 www.acmicpc.net 문제풀이 플로이드 와샬에 대한 자세한 내용은 아래 포스팅을 참고해주세요:) 플로이드 와샬 알고리즘(Floyd Warshall Algorithm) 플로이드 와샬 알고리즘이란? '모든 정점'에서 '모든 정점'으로의 최단 경로를 구하는 알고리즘 다익스트라 알고리즘과의 차이점 다익스트라는 하나의 정점에서 다른 모든 정점까지의 최단 경 woojeenow.tistory.com 플로이드 와샬 알고리즘으로 각 파티장끼리의 최소 이동 시간을 구..
플로이드 와샬 알고리즘이란? '모든 정점'에서 '모든 정점'으로의 최단 경로를 구하는 알고리즘 다익스트라 알고리즘과의 차이점 다익스트라는 하나의 정점에서 다른 모든 정점까지의 최단 경로를 구하는 알고리즘으로 가장 적은 비용을 하나씩 선택한다. 하지만 플로이드 와샬 알고리즘은 기본적으로 '거쳐가는 모든 정점'을 기준으로 알고리즘을 수행한다. 알고리즘 위와 같은 그래프가 존재한다고 할 때, D는 각각의 정점이 다른 정점으로 가는 비용을 이차원 형태로 저장해놓은 것이다. 처음에는 위와 같은 상태이다. 이때 무한대는 이동하는 경로가 없다는 뜻이고 자신 자신의 비용은 0이다. D[x][y] = x에서 y로 가는 최소 비용을 의미한다. 거쳐가는 정점을 K라고 하자. X에서 Y로 가는 최소 비용과 X에서 노드 K로 ..
- Total
- Today
- Yesterday
- 백준
- 브루트포스
- 투 포인터
- 구현
- BFS
- 문자열
- BOJ
- 알고리즘
- Java
- 스택
- 자바
- 배열
- 정렬
- 이분 탐색
- algorithm
- SWEA
- Kotlin
- 그래프
- programmers
- dfs
- 재귀
- 분할 정복
- 두 포인터
- 트리
- C++
- 프로그래머스
- 위상 정렬
- SW Expert Academy
- 큐
- Two Pointer
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |