본문 바로가기

Computer Science/Algorithm30

[Programmers] [PCCE 기출문제] 9번 / 이웃한 칸 문제 설명 각 칸마다 색이 칠해진 2차원 격차 보드판이 있습니다. 그 중 한 칸을 골랐을 때, 위, 아래, 왼쪽, 오른쪽 칸 중 같은 색깔로 칠해진 칸의 개수를 구하려고 합니다. 보드의 각 칸에 칠해진 색깔 이름이 담긴 이차원 문자열 리스트 board와 고른 칸의 위치를 나타내는 두 정수 h, w가 주어질 때 board[h][w]와 이웃한 칸들 중 같은 색으로 칠해져 있는 칸의 개수를 return 하도록 solution 함수를 완성해 주세요. 이웃한 칸들 중 몇 개의 칸이 같은 색으로 색칠되어 있는지 확인하는 과정은 다음과 같습니다. 1. 정수를 저장할 변수 n을 만들고 board의 길이를 저장합니다. 2. 같은 색으로 색칠된 칸의 개수를 저장할 변수 count를 만들고 0을 저장합니다. 3. h와 w의.. 2024. 3. 17.
[Algorithm] 이진탐색 이진탐색이란? 리스트나 트리에서 탐색 범위를 반으로 나누어 찾는 값을 포함하는 범위를 좁혀 나가는 탐색방식 이진 탐색 방식 1. 리스트의 가운데 값을 찾아 찾는 값과 비교. 2. 가운데 값이 찾는 값보다 크면 가운데 값을 기준으로 왼쪽 영역으로 가서 탐색 작으면 가운데 값을 기준으로 오른쪽 영역에 가서 탐색 3. 찾는 값이 나올때 까지 반복. 이진 탐색 방식 예시 1. 12를 찾는다고 가정하였을때 위 배열에서 중간값은 8이다. 12가 8보다 크므로 8기준 오른쪽 영역을 탐색한다. 2. 오른쪽 영역에서 중간값은 14이다. 12가 14보다 작으므로 14기준 왼쪽 영역을 탐색한다. 3. 왼쪽 영역에서 중간값은 11이다. 12가 11보다 보다 크므로 11기준 오른쪽 영역을 탐색한다. 4. 오른쪽 영역의 중간값은.. 2024. 3. 1.
[Inflearn] 연속부분수열 인프런의 자바(Java)알고리즘 문제풀이 입문:코딩테스트 대비 강좌의 문제를 풀고 문제 해설을 작성해보았습니다. 섹션 3. Two pointers, Sliding window[효율성 : O(n^2)-->O(n)]의 4. 연속부분수열(복합적 문제) 강의편 입니다. 설명 N개의 수로 이루어진 수열이 주어집니다. 이 수열에서 연속부분수열의 합이 특정숫자 M이 되는 경우가 몇 번 있는지 구하는 프로그램을 작성하세요. 만약 N=8, M=6이고 수열이 다음과 같다면 1 2 1 3 1 1 1 2 합이 6이 되는 연속부분수열은 {2, 1, 3}, {1, 3, 1, 1}, {3, 1, 1, 1}로 총 3가지입니다. 입력 첫째 줄에 N(1≤N≤100,000), M(1≤M≤100,000,000)이 주어진다. 수열의 원소값은.. 2023. 2. 19.
[Inflearn]_최대 매출 인프런의 자바(Java)알고리즘 문제풀이 입문:코딩테스트 대비 강좌의 문제를 풀고 문제 해설을 작성해보았습니다. 섹션 3. Two pointers, Sliding window[효율성 : O(n^2)-->O(n)]의 3. 최대 매출(Sliding window) 강의편 입니다. 설명 현수의 아빠는 제과점을 운영합니다. 현수 아빠는 현수에게 N일 동안의 매출기록을 주고 연속된 K일 동안의 최대 매출액이 얼마인지 구하라고 했습니다. 만약 N=10이고 10일 간의 매출기록이 아래와 같습니다. 이때 K=3이면 12 1511 20 2510 20 19 13 15 연속된 3일간의 최대 매출액은 11+20+25=56만원입니다. 여러분이 현수를 도와주세요. 입력 첫 줄에 N(5 2023. 2. 13.