카테고리 없음

[백준/C++] 10926번 ?!! 삼중자

Buang 2022. 7. 12. 15:22
반응형

1. 문제

 

첫째 줄에 준하가 가입하려고 하는 사이트에

이미 존재하는 아이디가 주어진다.

아이디는 알파벳 소문자로만 이루어져 있으며, 길이는 50자를 넘지 않는다.

 

첫째 줄에 준하의 놀람을 출력한다. 놀람은 아이디 뒤에 ??!를 붙여서 나타낸다.

 

https://www.acmicpc.net/problem/10926

 

10926번: ??!

준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때

www.acmicpc.net

 


2. 풀이

 

1) 배열

 

배열에 대해서 알고 있어야 하는 문제다.

아이디가 50자를 넘지 않아야 한다고 문제에서 나왔음으로

char ID [51];로 작성했다.

 

 

2) 삼중자

 

특정 문자 조합을 다른 문자로 치환하는

삼중자가 여기서 복병이 될 수 있다.

 

삼중자를 쉽게 비유해서 설명해보자면

내가 물음표 3개 (???)를 입력한 뒤 컴파일 후 실행시켰는데

물음표 3개(???)가 출력된 게 아닌 ?<> 이렇게 엉뚱한 문자가 출력되는 걸 말한다.

 

삼중자에는 여러 종류가 있다.

 

??= 는 삼중자다. ??=를 입력하면 ??=말고 다른 문자가 출력된다.

??( 도 삼중자다. 이 친구도 위에 친구와 마찬가지다.

 

우리가 문제에서 쓸 ??! 도 삼중자다.

 

??! 를 입력하면 출력으로 ??!가 나오는게 아닌 | 이 나온다.

이걸 방지하기 위해선 ?/?! 로 입력하면 ??!로 출력이 되는데

이상하게도 나는 ??!를 그대로 썼음에도 ??!로 출력이 됐다.

 

도대체 왜지?

 


3. 코드

#include <stdio.h>
 
int main(void) {

    char ID[51];
    
    scanf("%s", ID); //배열은 주소를 내포하고 있어서 &ID로 쓰지 않아도 됨. 
    printf("%s??!", ID);

    return 0;
}

 

 

반응형