본문 바로가기

전체 글74

[백준] 16234번 인구 이동 해당 문제의 원문은 여기서 확인하자. 문제 이해 각 나라의 인구수가 주어졌을 때, 인구 이동이 며칠 동안 발생하는지 구하는 문제이다. N * N 크기의 땅이 있고, 땅은 1 * 1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모든 나라는 1×1 크기이기 때문에, 모든 국경선은 정사각형 형태이다. 특정 규칙을 만족하는 경우 인구 이동이 발생하며 더 이상의 인구 이동이 없을 때까지 지속된다. 국경선을 공유하는 두 나라의 인구 차이가 L명 이상, R명 이하라면, 두 나라가 공유하는 국경선을 오늘 하루 동안 연다. 위의 조건에 의해 열어야하는 국경선이 모두 열렸다면, 인구 이동을 시작한다. 국.. 2022. 7. 27.
[백준] 1520번 내리막 길 해당 문제의 원문은 여기서 확인하자. 문제 이해 높이가 쓰여있는 M * N 배열이 있다. (0, 0)에서 출발하여 (M - 1, N - 1) 지점으로 가려고 할 때, 항상 현재 높이보다 낮은 곳으로만 이동해서 갈 수 있는 경우의 수를 구하는 문제이다. 이동은 인접한 곳(상하좌우)만 가능하다. 첫째 줄에는 M과 N이 주어지고, 다음 M개의 줄에 걸쳐 한 줄에 N개씩 높이가 공백을 사이에 두고 주어진다. 제한 사항은 다음과 같다. 1 ≤ M, N ≤ 500 1 ≤ 높이 ≤ 10,000 0 ≤ 결과 ≤ 10억 접근 방식 DFS와 DP의 개념을 이용해 문제를 해결하였다. 문제에서 볼 수 있듯이 경우의 수가 많아 DFS만 사용하게 되는 경우 시간 초과가 발생할 수 있다. 때문에 특정 위치에서 가능한 경우를 저장해.. 2022. 7. 24.
[백준] 5557번 1학년 해당 문제의 원문은 여기서 확인하자. 문제 이해 수열이 주어지고 수열 사이에 '+', '-'를 넣어 만들어진 식이 수열의 마지막 숫자와 등식을 만족하는 경우의 수를 구하는 문제이다. 예를 들면, "8 3 2 4 8 7 2 4 0 8 8"이 주어진 경우 "8+3-2-4+8-7-2-4-0+8=8"와 같이 만들 수 있다. 첫째 줄에는 숫자의 개수 N이 주어지고, 둘째 줄에는 0이상 9이하의 정수 N개가 공백으로 구분해 주어진다. 제약 사항은 다음과 같다. 식은 왼쪽부터 계산하며, 계산 도중 나오는 수는 모두 0이상 20이하이어야 한다. 3 ≤ N ≤ 100 0 ≤ 출력 ≤ 26^3 - 1 접근 방식 DP의 개념을 이용해 문제를 해결하였다. 문제의 핵심은 수열의 각 수들이 들어올 때 만들 수 있는 수와 그 수의.. 2022. 7. 24.
[백준] 10026번 적록색약 해당 문제의 원문은 여기서 확인하자. 문제 이해 N * N인 그리드의 각 칸에 R(빨간), G(초록), B(파랑) 중 하나를 색칠한 그림이 있을 때, 적록색약이 아닌 사람이 봤을 때의 구역 수와 적록색약인 사람이 봤을 때의 구역 수를 구하는 문제이다. 적록색약은 R과 G의 차이를 거의 느끼지 못하며, 같은 색상이 상하좌우로 인접한 경우에 같은 구역에 속한 것으로 취급한다. 예제는 다음과 같다. RRRBB GGBBB BBBRR BBRRR RRRRR //적록색약O : 3개 //적록색약X : 4개 첫째 줄에 N이 주어지고 둘째 줄부터 N개 줄에 그림이 주어진다. 제한 사항은 다음과 같다. 1 ≤ N ≤ 100 결과는 공백으로 구분하여 출력한다. 접근 방식 DFS의 개념을 이용해 문제를 해결하였다. 적색색맹 여.. 2022. 7. 22.
[Web] 정적인 웹 & 동적인 웹 클라이언트 - 서버 구조 client - server 구조는 클라이언트가 요청(request)하면 서버는 해당 요청을 받아 클라이언트에게 응답(response)하는 형태이다. 만약 클라이언트가 웹 페이지를 서버에 요청하면 서버는 해당하는 웹 페이지를 찾아 클라이언트에게 응답해주는데, 이때 웹 페이지를 정적인 웹과 동적인 웹 두 가지로 구분할 수 있다. 정적인 웹(Static Web) 사용자, 날짜 등에 상관없이 같은 내용을 표시하는 웹 페이지이다. 단순히 클라이언트가 원하는 파일 경로명을 통해 Web Server에서 해당하는 파일을 찾아 반환되는 형태이다. 서버 내부에서 따로 처리하는 작업이 없기 때문에 응답 속도가 빠르다. 웹 페이지를 요청한 모든 클라이언트가 같은 결과를 받는다. 서버 구축 비용이 .. 2022. 7. 19.
[백준] 2133번 타일 채우기 해당 문제의 원문은 여기서 확인하자. 문제 이해 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구하는 문제이다. 첫째 줄에 N이 주어지며 제한 사항은 다음과 같다. 1 ≤ N ≤ 30 접근 방식 재귀의 개념을 이용한 방식과 DP의 개념을 이용한 방식 두 가지로 해결하였다. 이 문제의 경우 나타날 수 있는 패턴이 정해져있다. (홀수 열의 경우 모든 칸을 채우는 것이 불가능하기 때문에 제외한다.) 먼저 2열을 가지고 만들 수 있는 경우는 다음 3가지이다. 이후부턴 길이만 늘어나며 형태는 거의 같은 패턴이 반복되며 2가지씩만 존재한다. 이제 재귀 내에서 내가 사용할 패턴을 정하고 패턴에 따라 남은 열 수와 만들어질 수 있는 경우의 수를 다음 재귀로 넘겨주면 된다. 재귀는 남은 열 수가 .. 2022. 7. 19.