![[BOJ] 백준_23842번_성냥개비_C/C++](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FdonbwO%2FbtroDrHc7JE%2FAAAAAAAAAAAAAAAAAAAAAP0h1JBkWfluQWmwjEMxJshSnt6V7aryIBCy6tUOszC-%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D%252BBphz88vJKe1pdcsuSbeGFatpsM%253D)
[BOJ] 백준_23842번_성냥개비_C/C++백준 알고리즘2021. 12. 23. 03:35
목차
문제 출처
https://www.acmicpc.net/problem/23842
23842번: 성냥개비
동빈이는 내일 TV 프로그램 '문제적 유니' 에 출연한다. 평소 애청자였던 동빈이는 성냥개비 문제가 자주 출제된다는 사실을 알았고, 오늘 예습하기로 했다. 성냥개비는 다음과 같이 숫자를 디지
www.acmicpc.net
코드
#include <iostream>
using namespace std;
int main()
{
int n;
int match_num[] = { 6, 2, 5, 5, 4, 5, 6, 3, 7, 6 };
cin >> n;
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
for (int k = 0; k < 10; k++)
{
for (int l = 0; l < 10; l++)
{
if ((match_num[i] + match_num[j] + match_num[k] + match_num[l] +
match_num[(10 * i+j + 10 * k+l) / 10] +match_num[(10 * i+j + 10 * k+l) % 10] == n - 4))
{
cout << i<<j << "+" << k<<l << "="<<
(10 * i + j + 10 * k + l) / 10<< (10 * i + j + 10 * k + l) % 10 << endl;
return 0;
}
}
}
}
}
cout << "impossible";
}
풀이 과정
0부터 9까지의 수를 표현할 때 필요한 성냥 개비 수를 match_num 정수형 배열에 저장한 후 for문을 더할 두 수 각각 두자릿수 씩 해서 총 4번 반복하게 만든다. for문 안에서는 모든 자릿수의 match_num과 그 수들을 합한 수의 십의 자리 수의 match_num, 일의 자리 수의 match_num까지 모두 더한 값이 입력받은 수 n에서 +, =에서 쓰이는 성냥개비 4개를 제외한 값과 같을 경우 식을 출력하고 프로그램을 종료한다. 해당 경우가 없을 경우 for문이 종료되고 impossible이 출력되어 프로그램이 종료된다.
728x90
반응형
'백준 알고리즘' 카테고리의 다른 글
[BOJ] 백준_11726번_2xn 타일_C/C++ (2) | 2021.12.30 |
---|---|
[BOJ] 백준_23841번_데칼코마니_C/C++ (2) | 2021.12.26 |
[BOJ] 백준_8958번_ OX퀴즈_C/C++ (6) | 2021.11.20 |
[BOJ] 백준_1546번_ 평균_C/C++ (0) | 2021.11.20 |
[BOJ] 백준_23561번_Young한 에너지는 부족하다_C/C++ (0) | 2021.11.18 |
@kdj :: Childev'note
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!