일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- D3
- D2
- dfs
- Flatten
- 그리디 알고리즘
- 간단한 369게임
- 좌표 정렬하기
- 다리놓기
- 나는야 포켓몬 마스터 이다솜
- 다이나믹프로그래밍
- 백만 장자 프로젝트
- N-Queen
- 에라토스테네스의체
- SWEA
- BFS
- boj
- 플루이드-워셜
- 완전탐색
- 스도쿠 검증
- 최단경로
- 이분탐색
- 브루트포스
- 회의실 배정
- 해시맵
- LRU
- firebase
- 터렛
- 우선순위 큐
- 투포인터
- 배포
- Today
- Total
목록SWEA (5)
허비의 기술블로그
상자가 쌓인 층들이 나열된 1차원 배열과 상자를 옮길 수 있는 횟수를 입력받아, 평탄화를 진행했을 때 최고 높이와 최저 높이의 차이를 반환하는 문제이다. 시간복잡도: O(상자 배열 길이 * 상자 옮기는 횟수) SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이과정 매번 상자를 옮기는 과정에 있어서, 가장 높이 쌓여있는 값과 가장 낮게 쌓여있는 값을 찾은 다음에 최댓값에서 1을 빼고 최솟값에 1을 더해서 평탄화를 진행한다. 최댓값, 최솟값을 가진 위치를 찾는 과정에서 값을 변경함에 따라 최소, 최댓값이 바뀔 수 있으므로, index를 먼저 구해놓는다. 주어진 변경 가능 횟수 내에 작업이 종료될 수 있지만, 끝까..
일렬로 나열된 빌딩들의 층 수가 주어지면 모든 빌딩의 각 층에서, 좌우 각각 2개의 빌딩에 대해 조망이 확보되는 층의 개수를 구하는 문제이다. 시간복잡도: O(N) SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 방법 빌딩 배열에서 좌, 우 끝의 2개 빌딩은 높이가 0이라고 주어졌으므로, 3~M-2번째 빌딩의 층들만 조망 가능 여부를 검사하면 된다.(M:빌딩의 개수) 검사 방법은 우선 좌, 우 각각 2개의 빌딩에서 가장 높은 빌딩의 층 수를 구한 다음, 현재 빌딩의 층수와 비교한다. 현재 빌딩의 층 수가 더 높다면, 현재 빌딩에서 조망 가능한 층은 없으며, 현재 빌딩이 더 높다면, 높은 층들은 조망이 가능..
스도쿠의 좌표(9*9 2차원 배열)가 주어지면, 스도쿠가 유효한지(1~9까지의 숫자가 유일하게 등장하는지) 검사하는 문제다. 시간복잡도: O(N) SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 방법 스도쿠의 9 * 9 좌표에서 세로줄, 가로줄, 3 * 3 사각형에 대해서 숫자를 검사해야 한다. 이를 위해 우선 2차원 배열을 입력받은 다음에 세로줄, 가로줄, 3 * 3 사각형을 각각 차례로 담은 2차원 배열 3개를 만든다. ex) 입력: 7 3 6 4 2 9 5 8 1 5 8 9 1 6 7 3 2 4 2 1 4 5 8 3 6 9 7 8 4 7 9 3 6 1 5 2 1 5 3 8 4 2 9 7 6 9 6 2..
369게임에서 박수를 쳐야하는 숫자는 박수의 수 만큼 '-'를 출력하고, 아닌 수는 그대로 숫자를 출력한다. SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이과정 1~N까지의 모든 숫자에 대해 숫자에서 (3,6,9)의 갯수를 숫자 % 10, 숫자 / 10 을 반복하며 찾아낸다. 갯수가 0이면 숫자를 그대로 출력하고, 1 이상이면 그 숫자만큼 '-'를 출력한다. 코드 N = int(input()) for num in range(1, N + 1): temp = num cnum = 0 while temp > 0: if temp % 10 in [3, 6, 9]: cnum += 1 temp //= 10 if cnum..
1차원 배열을 입력받아 원소 순서별로 사거나 팔 수 있다고 가정할 때, 최대 이익을 구하는 문제이다. 시간복잡도: O(N) SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 테스트 케이스 [TC1] 입력: 3 5 9 정답: 10 풀이: 첫째, 둘째 날 물건을 구입해서 셋째 날에 팔면 6 + 4 = 10의 이익을 낼 수 있다. [TC2] 입력: 10 7 6 정답: 0 풀이: 날짜가 지날 수록 가격이 줄어드므로 구매를 하지 않는다. [TC3] 입력: 1 1 3 1 2 정답: 5 풀이: 첫째, 둘째날에 물건을 사서 셋째 날에 팔고, 넷째 날에 물건을 사서 다섯째 날에 팔면 (3 - 1) + (3 - 1) + (2 - ..