Baekjoon
[1149] RGB거리
https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 💡 내 코드(C++) //RGB거리 //https://www.acmicpc.net/problem/1149 //dp #include #include using namespace std; int main(void) { int n, red, green, blue; int cost[3][1001] = { 0, }; cin >> n; cin >> cost[0][0] >> cost[1]..
![[1032] 명령 프롬프트](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEuoao%2FbtqE0ON4wQL%2FGU2t76rkyoh1CHjFcpHgi0%2Fimg.png)
[1032] 명령 프롬프트
https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 �� www.acmicpc.net 💡 내 코드(C++) // [1032] 명령 프롬프트 // https://www.acmicpc.net/problem/1032 #include #include using namespace std; int n; // number of files(n > n; temp = n; while (temp--) { cin >> fileName[temp]; } if (n == 1) cout
[10996] 별 찍기 - 21
🍃 문제 바로가기 🔎 해결 방법 우선 규칙성을 찾아야 한다. n이 1부터 4까지일때 각각의 경우를 잘 살펴보면 빈칸 뒤에 *이 따라오는 것을 볼 수 있는데 맨 처음 칸에만 빈칸 없이 *이 바로 오는 것을 볼 수 있다! 따라서, n이 어떤 값으로 들어오던지 *을 먼저 찍어주고 그 이후에 첫 줄과 둘째 줄에 [ 빈칸 + * ] 쌍이 몇 개가 나와야 하는지만 찾으면 끝! 1) n = 1 2) n = 2 [ 빈칸 + * ] 쌍이 첫 줄에 0개, 둘째 줄에 1개가 와야 하고 이 패턴이 총 2번 반복된다. 3) n = 3 [ 빈칸 + * ] 쌍이 첫 줄에 1개, 둘째 줄에 1개가 와야 하고 이 패턴이 총 3번 반복된다. 4) n = 4 [ 빈칸 + * ] 쌍이 첫 줄에 1개, 둘째 줄에 2개가 와야 하고 이 패턴이..
![[14888] 연산자 끼워넣기(C++)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdKjmQD%2FbtrSy71DYER%2FMkxOXEsd5t5kdbcY3T19ZK%2Fimg.jpg)
[14888] 연산자 끼워넣기(C++)
문제 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, �� www.acmicpc.net 해결 방법 우선 연산자의 입력값을 숫자로 대치하여 operators 배열에 저장해주었다. + : 0 - : 1 x : 2 / : 3 위와 같이 설정하여 예를 들어 연산자 개수의 입력이 "2 0 1 0" 이라면 +, +, x 라는 뜻이므로, operators 배열에는 0, 0, 2가 저장된다. 입력된 숫자의 순서는 변경할 수 없기 때문에 가능한 연산자 순열의 모든 경우를 구해서 계산을 해줘야 하는데 ..
![[1018] 체스판 다시 칠하기(C++)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Flea6C%2FbtrSDKXWK91%2FPzp4zflrkSCpabiYyYJi0k%2Fimg.jpg)
[1018] 체스판 다시 칠하기(C++)
문제 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 해결 방법 우리가 최종적으로 만들 수 있는 체스판의 경우는 아래와 같이 두 가지가 있다. 이 형태는 chess() 함수를 통해 구현하였다. 그리고 아래와 같은 보드를 입력받았다고 하자. 그러면 (0, 0) 부터 시작해서 (0, 1), (0, 2) ... (1, 0), (1, 1) ... 이런식으로 시작점을 옮겨가면서 아래와 같이 8x8 크기의 체스판을 찾고, 각각의 경우에서 우리가 미리 chess() 함수를 통해 구해놓은 정답과 비교하면서, 다른 칸..
![[2231] 분해합(C++)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpnacs%2FbtrSCdmuhiI%2Fc9kqffmtYgWWxYKx7V1fP0%2Fimg.png)
[2231] 분해합(C++)
문제 2231번: 분해합 문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+ www.acmicpc.net 해결 방법 진짜 푸는 방법도 간단하고 코드도 간결한 문제인데 너무 터무니없는 곳을 발견하지 못하고 다른 부분을 계속 건드리다가 시간만 많이 날려먹었다... 우선 각 자리수의 합의 최솟값은 1이고 최댓값은 (9 * 자리수)이다. 즉, 세 자리수인 경우 각 자리수의 합은 최소 1부터 최대 9 * 3 = 27까지이다. 그렇다면 우리는 가능한 m의 초기값을 어떤 것에서부터 시작할 것인지를 결정해야 하는데, 1로 초기화 한 뒤에 n과 같아질..
[3020] 개똥벌레(C++)
문제 3020번: 개똥벌레 문제 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석�� www.acmicpc.net 해결 방법 1. 석순의 길이는 입력받는 값 그대로 stalagmite 배열에 저장 2. 종유석의 길이는 바닥과 종유석까지의 거리로 변환(동굴의 높이 - 종유석 길이)하여 stalactite 배열에 저장 3. stalagmite, stalactite 배열을 각각 오름차순 정렬 4. 1번째 구간부터 동굴의 높이와 같은 구간까지 탐색하며 해당 구간에서 석순과 종유석과 각각 몇 개씩 만나는지 계산! 이때 lower_bound() 함수를 사용하여 만나는 개수를 바..
![[1620] 나는야 포켓몬 마스터 이다솜](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu8owP%2FbtqENaXlzET%2FJONWOLu1MVh4FJiDMYRN0k%2Fimg.png)
[1620] 나는야 포켓몬 마스터 이다솜
https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 문제에 그림과 글이 되게 길게 있는데 실질적으로 문제 푸는데는 없어도 전혀 지장이 없었기 때문에 가져오지 않았는데 궁금하다면 문제 링크를 클릭!🖱 ✍️ 해결 방법 문자를 입력받았으면 포켓몬의 이름이 사전식으로 정렬되어 있는 배열에서 해당 문자를 찾아서 번호를 출력해 줄 것이고, 숫자를 입력받았으면 인덱스를 활용하여 바로 포켓몬의 이름을 출력해주면 된다. 따라서 포켓몬의..