plzrun 2632 - 피자판매 반복문을 통해 풀면 되는 문제이다. (1) 두 피자에서 한쪽 피자로만 줄 수 있는 경우의 수가 존재할 수 있으므로 distA[0] = distB[0] = 1로 주었다. (2) 피자 한 판에서 나올 수 있는 모든 경우의 수를 구하다 t보다 클 경우 종료 에서 그림을 보면 알 수 있는데 i, j를 m까지 돌리면서 피자 한판 자체가 m 크기이니 (i + j)를 m으로 나눈 결과의 인덱스 값을 tm... Binary SearchplzrunbaekjoonBinary Search 2143 - 두 배열의 합 이해 문제에서는 두 배열의 합을 더해서, T가 되는 모든 부 배열의 쌍의 개수를 구하는 프로그램을 작성하려고 하였다. 이는 순차적으로 탐색을 하며, 완전 탐색을 해야하는 상황이다. 배열의 합 : A[i] + ... + A[j] 그 사이의 합을 구하는 문제이다. 순차적으로 탐색을 하며, 사이 구간의 합을 구할 때는 딕셔너리를 사용하면 된다. 이와 같은 문제를 풀 때는, 현재 A의 합들을 딕셔너... Binary SearchplzrunbaekjoonBinary Search 2447 - 별 찍기 - 10 이해 재귀적인 패턴으로 별을 찍는다. 평소에는 반복문 위주로 사용하여, 이번 문제는 재귀를 이용하여 풀었다. 현재 n = 3^i일 때, 가운데를 제외한 나머지는 n = 3^(i-1)이다. n이 3^i일 때 ➡️ * : 3^(i - 1)이다. 위를 이용하여 재귀함수를 구현하였다. 재귀말고, 배열로만 결과를 낼 수도 있다. (위 블로그 참고하면 된다.) 소스 채점 결과... Divide and conquerbaekjoonplzrunDivide and conquer 2448 - 별 찍기 - 11 이해 위 별의 모양이 반복해서 출력된 것을 확인할 수 있다. 문제에 나와있는 공식에 따르면 (N = 3 x 2^k)라고 한다. k가 1일 때는 위 별의 모양이 2개가 추가 되는 것이고 k가 2일 때는 k가 1일 때 모양을 2개 추가한 것을 알 수 있다. 이와 같이 반복된다. 띄어쓰기는 k가 1일 때는 위 별의 모양에서 왼쪽으로 3칸 띄워쓰기가, 위 별의 모양에서 오른쪽 끝은 3칸 띄워지면 된... Divide and conquerbaekjoonplzrunDivide and conquer 2875 - 대화 or 인턴 이해 브론즈 문제이지만, 약간 생각을 해야한다고 생각한다. 조건처리하는데, 생각을 많이 한 것 같다. 소스 채점 결과... plzrungreedybaekjoonbaekjoon ATM - 11399 이해 정렬 후 현재 합, 전체 총합을 각각 구하여 계산한다. 정렬 후 1번째 수는 n번 더해지고, 2번째 수는 n-1번 더해지고 ~ n번째 수는 1번 더해진다. 소스 채점 결과 결과를 보면 위에 (2), 밑에 (1) 채점 결과... plzrungreedybaekjoonbaekjoon 2186 - 문자판 이해 n, m 크기의 문자판이 주어지며, 경로의 개수를 구하는 문제이다. 직사각형과 경로가 등장했다. 이는 깊이 우선 탐색, 너비 우선 탐색으로 풀 수 있는 문제라는 것이다. 보통 우선 탐색 문제들은 좌표안에서 지나갈 수 있는 경로를 구할 때 많이 사용된다. 📌 주의점 출력 값이 2^31 - 1 보다 작거나 같기 때문에, 메모이제이션을 사용하여 계산들을 메모리에 저장함으로써 동일한 계산의 반... plzrunbaekjoonbrute forcebaekjoon 가장 긴 증가하는 부분 수열 dp[i]의 값을 1로 초기화 현재 위치보다 이전에 있는 원소의 값이 작은지 확인한다. (크거나 같으면 가장 긴 증가하는 부분 수열이 될 수 없다.) 작다면, 현재 위치의 이전 숫자 중, dp값에 + 1을 하여 현재 위치 dp 값과 비교한다. 그 중 최대값을 구한다. 예시를 보면 이와 같다. arr dp 실행 결과 참고 내용 :... baekjoonDPplzrunDP 11057 - 오르막 수 기존 나의 코드 상위권 효율적인 코드 참고 결과 규칙을 잡아 DP를 이용하니 for문 2개로 해결되었다. 시간이 대략 12ms 차이난다.... baekjoonDPplzrunDP 1707 - 이분 그래프 풀이 dfs, bfs 동시에 사용 가능할 때는 bfs를 사용하는 것이 좋다. ✔️ 문제 푸는 팁 먼저 이분 그래프란 무엇인가 하면 서로 인접한 정점이 같은 색이면 이분 그래프가 아니다. 사이클이 형성되면 안된다. 이 문제는 전형적인 bfs와 dfs로 풀리지만 한 가지 생각할 점이 있다. ➡️ 방문 표시할 때, graph[a] = b일 때 a는 파란색(-1) b는 빨간색(1) 이 칠해지도록 구... baekjoonplzrunGraphGraph 11727 - 2xn 타일링 2 plzrunbaekjoonDPDP 1463 - 1로 만들기 그리디 알고리즘 : 내가 생각한 최적의 방법이 처음부터 끝까지 반례 없이 적용이 되는 경우 동적 계획법 : 가능성을 모두 두고 그 안에서 최솟값을 찾기 먼저 1을 더해준다. (이유는 먼저 더해도 어차피, 그 값이 2와 3으로 나누어지면 나누어진 값 중 최소 값으로 변경 가능하기 때문) 소스를 보면 쉽게 이해가 될 것이다. 소스... plzrunbaekjoonDPDP
2632 - 피자판매 반복문을 통해 풀면 되는 문제이다. (1) 두 피자에서 한쪽 피자로만 줄 수 있는 경우의 수가 존재할 수 있으므로 distA[0] = distB[0] = 1로 주었다. (2) 피자 한 판에서 나올 수 있는 모든 경우의 수를 구하다 t보다 클 경우 종료 에서 그림을 보면 알 수 있는데 i, j를 m까지 돌리면서 피자 한판 자체가 m 크기이니 (i + j)를 m으로 나눈 결과의 인덱스 값을 tm... Binary SearchplzrunbaekjoonBinary Search 2143 - 두 배열의 합 이해 문제에서는 두 배열의 합을 더해서, T가 되는 모든 부 배열의 쌍의 개수를 구하는 프로그램을 작성하려고 하였다. 이는 순차적으로 탐색을 하며, 완전 탐색을 해야하는 상황이다. 배열의 합 : A[i] + ... + A[j] 그 사이의 합을 구하는 문제이다. 순차적으로 탐색을 하며, 사이 구간의 합을 구할 때는 딕셔너리를 사용하면 된다. 이와 같은 문제를 풀 때는, 현재 A의 합들을 딕셔너... Binary SearchplzrunbaekjoonBinary Search 2447 - 별 찍기 - 10 이해 재귀적인 패턴으로 별을 찍는다. 평소에는 반복문 위주로 사용하여, 이번 문제는 재귀를 이용하여 풀었다. 현재 n = 3^i일 때, 가운데를 제외한 나머지는 n = 3^(i-1)이다. n이 3^i일 때 ➡️ * : 3^(i - 1)이다. 위를 이용하여 재귀함수를 구현하였다. 재귀말고, 배열로만 결과를 낼 수도 있다. (위 블로그 참고하면 된다.) 소스 채점 결과... Divide and conquerbaekjoonplzrunDivide and conquer 2448 - 별 찍기 - 11 이해 위 별의 모양이 반복해서 출력된 것을 확인할 수 있다. 문제에 나와있는 공식에 따르면 (N = 3 x 2^k)라고 한다. k가 1일 때는 위 별의 모양이 2개가 추가 되는 것이고 k가 2일 때는 k가 1일 때 모양을 2개 추가한 것을 알 수 있다. 이와 같이 반복된다. 띄어쓰기는 k가 1일 때는 위 별의 모양에서 왼쪽으로 3칸 띄워쓰기가, 위 별의 모양에서 오른쪽 끝은 3칸 띄워지면 된... Divide and conquerbaekjoonplzrunDivide and conquer 2875 - 대화 or 인턴 이해 브론즈 문제이지만, 약간 생각을 해야한다고 생각한다. 조건처리하는데, 생각을 많이 한 것 같다. 소스 채점 결과... plzrungreedybaekjoonbaekjoon ATM - 11399 이해 정렬 후 현재 합, 전체 총합을 각각 구하여 계산한다. 정렬 후 1번째 수는 n번 더해지고, 2번째 수는 n-1번 더해지고 ~ n번째 수는 1번 더해진다. 소스 채점 결과 결과를 보면 위에 (2), 밑에 (1) 채점 결과... plzrungreedybaekjoonbaekjoon 2186 - 문자판 이해 n, m 크기의 문자판이 주어지며, 경로의 개수를 구하는 문제이다. 직사각형과 경로가 등장했다. 이는 깊이 우선 탐색, 너비 우선 탐색으로 풀 수 있는 문제라는 것이다. 보통 우선 탐색 문제들은 좌표안에서 지나갈 수 있는 경로를 구할 때 많이 사용된다. 📌 주의점 출력 값이 2^31 - 1 보다 작거나 같기 때문에, 메모이제이션을 사용하여 계산들을 메모리에 저장함으로써 동일한 계산의 반... plzrunbaekjoonbrute forcebaekjoon 가장 긴 증가하는 부분 수열 dp[i]의 값을 1로 초기화 현재 위치보다 이전에 있는 원소의 값이 작은지 확인한다. (크거나 같으면 가장 긴 증가하는 부분 수열이 될 수 없다.) 작다면, 현재 위치의 이전 숫자 중, dp값에 + 1을 하여 현재 위치 dp 값과 비교한다. 그 중 최대값을 구한다. 예시를 보면 이와 같다. arr dp 실행 결과 참고 내용 :... baekjoonDPplzrunDP 11057 - 오르막 수 기존 나의 코드 상위권 효율적인 코드 참고 결과 규칙을 잡아 DP를 이용하니 for문 2개로 해결되었다. 시간이 대략 12ms 차이난다.... baekjoonDPplzrunDP 1707 - 이분 그래프 풀이 dfs, bfs 동시에 사용 가능할 때는 bfs를 사용하는 것이 좋다. ✔️ 문제 푸는 팁 먼저 이분 그래프란 무엇인가 하면 서로 인접한 정점이 같은 색이면 이분 그래프가 아니다. 사이클이 형성되면 안된다. 이 문제는 전형적인 bfs와 dfs로 풀리지만 한 가지 생각할 점이 있다. ➡️ 방문 표시할 때, graph[a] = b일 때 a는 파란색(-1) b는 빨간색(1) 이 칠해지도록 구... baekjoonplzrunGraphGraph 11727 - 2xn 타일링 2 plzrunbaekjoonDPDP 1463 - 1로 만들기 그리디 알고리즘 : 내가 생각한 최적의 방법이 처음부터 끝까지 반례 없이 적용이 되는 경우 동적 계획법 : 가능성을 모두 두고 그 안에서 최솟값을 찾기 먼저 1을 더해준다. (이유는 먼저 더해도 어차피, 그 값이 2와 3으로 나누어지면 나누어진 값 중 최소 값으로 변경 가능하기 때문) 소스를 보면 쉽게 이해가 될 것이다. 소스... plzrunbaekjoonDPDP