[BOJ/백준/C++] 1018번 체스판 다시 칠하기
·
Coding Test/Baekjoon
1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 📌 접근 방법 MN 크기의 이차배열을 반복문을 통해 8x8 배열로 쪼개어보았다 W가 짝수에 나오고 B가 홀수에 나오는 경우를 센다. W가 홀수에 나오고 B가 짝수에 나오는 경우를 센다. ➡ 더 많이 나온 수를 구하여 8x8=64에서 빼주었다 ➡ 그만큼이 다시 칠해야 하는 개수이므로 최소값을 구하여 출력 ✅ Pass Code #include #include #include #include using namespace std; int main() { int ..
[BOJ/백준/C++] 10757번 큰 수 A+B
·
Coding Test/Baekjoon
10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 📌 접근 방법 매우 큰 수들을 더해야하기 때문에 문자열로 바꾸어 덧셈을 해준다 ✅ Pass Code #include #include #include using namespace std; int main() { string str1="",str2="", result=""; cin>>str1>>str2; int size1=str1.length(); int size2=str2.length(); int c=0; while(size1>0||size2>0){ int a=0,b=0; if(size1>0){ a=str1[--size1]-'0'; } if(size2>0){ b=str2[-..
[BOJ/백준/C++] 2869번 달팽이는 올라가고 싶다
·
Coding Test/Baekjoon
2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 📌 접근 방법 🚫 시간초과 반복문을 이용해서 하루 올라가고 내려가고 반복하며 풀었더니 시간초과가 났다. ✔ 해결 방법 다 올라가면 미끄러지지 않음 목표 : 나무의 높이가 아닌 나무 높이에서 하루 동안 올라갈 수 있는 높이인 A 높이 만큼 빼준 높이 하루동안 올라가고 내려가는 높이를 합쳐 A-B를 나눠준다. 여기서 몫이 며칠 동안 올라갔는지 나타내준다. 꼭대기까지 올라갔다면 더이상 올라가지도 내려가지도 않아도 되기 때문에 끝낼 수 있음 (V-A)%(A-B)가 0이 아니라면 하루 더 올라갈 높이가 남아있다는 뜻이므로 하루 ..
[BOJ/백준/C++] 1193번 분수찾기
·
Coding Test/Baekjoon
1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 📌 접근 방법 분수 표를 비스듬히 두고보면 첫 번째 줄에는 1개의 분수가, 2번째 줄에는 2개의 분수가 3번째 줄에는 3개의 분수가 있는 것을 볼 수 있다. 규칙 : 입력받은 x는 1부터 r-1까지의 합과 1부터 r까지의 합 사이에 위치한다 ➡ (r-1)*r/2 < x ≤ r *(r+1)/2 (합 구하는 공식) ➡ 해당 x가 몇 번째 줄에 위치하는지 알 수 있다. 분수의 분자, 분모의 합은 해당 줄에서 1을 더한 값으로 일정하다. 짝수 줄에는 분모가 r에서 1로 하나씩 줄어들고 분자는 반대로 1에서 r로 늘어난다. 홀수 줄은 그와 반대로 작용한다. ✅ Pass Code #include #inc..