반응형
https://codeup.kr/problem.php?id=1292&rid=0
문제
한적한 시골마을에 도둑이 들었다.
이 도둑은 마을의 재산을 훔쳐가다 마을 사람들에게 들켜 도망쳤다.
급하게 도망치느라 도둑은 신발이 벗겨졌다는 사실도 잊었다.
마을 사람들은 도둑의 신발의 DNA를 분석했다.
도둑의 DNA의 특징은 DNA의 모든 숫자의 합을 77로 나눈 나머지가 44라는 사실을 알았다.
다음 날 경찰이 도둑으로 의심되는 사람을 검거하여 그들의 DNA 샘플을 가져왔다.
DNA 샘플을 분석하여 이 자가 도둑인지 아닌지를 판단하여 만약 도둑이라면 “suspectsuspect”, 아니면 “citizencitizen”을 출력하는 프로그램을 작성하시오.
입력
길이가 1010자리로 구성된 1010진수가 입력된다.
출력
프로그램의 조건에 따라 “suspectsuspect” 또는 “citizencitizen”을 출력한다.
입력 예시
1234567891
출력 예시
suspect
코드
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
cin>>str;
int sum=0;
for(int i=0; i<str.length(); i++){ // 문자열 길이만큼 반복문 진행
char c=str[i]; // 문자열을 각각 배열로 생각하고 문자형 c로 치환한다.
sum+=(int(c)-'0');
// '5'라는 문자에 -'0'을 해주면 int 5로 인식된다. }
if(sum%7==4){
cout<<"suspect"<<"\n";
}
else{
cout<<"citizen"<<"\n";
}
return 0;
}
|
cs |
풀이
string문자열을 char형으로 치환해서 각각 문자를 int형으로 치환해주는 게 이 문제에 가장 핵심 내용인 것 같다
반응형
'CodeUp' 카테고리의 다른 글
[Code Up/C++] 코드업 1365 c++ 사각형 출력하기 3 (0) | 2021.11.15 |
---|---|
[Code Up/C++] 코드업1212 c++ 삼각형의 성립 조건 (0) | 2021.07.16 |