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; }