김펭귄 관찰일기
article thumbnail
Published 2022. 2. 11. 13:20
[C] ??! 프로그래밍/백준 알고리즘

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

 

10926번: ??!

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

www.acmicpc.net

 

1. 문제


💡 문제

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

💡 입력

첫째 줄에 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어진다. 아이디는 알파벳 소문자로만 이루어져 있으며, 길이는 50자를 넘지 않는다.

💡 출력

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

 

 

2. 풀이


#include <stdio.h>

int main(){
    char input[51] = {0,};
    scanf("%s", input);
    printf("%s", input);
    printf("\?\?!");
}

 

 

3. 메모


 이번 문제는 굉장히 쉬웠지만 문제 자체를 이해 못해서 버벅거렸다 ㅠㅜ.. 첫째 줄에 준하의 놀람을 출력하라고..? 바로 ??!만 나오게 해야 하나? 역시 문제는 꼼꼼히 읽고 출제자가 무엇을 원하는지 정확히 짚어야 한다.

#include <stdio.h>

int main(){
    char input[51] = {0,};
    scanf("%s", input);
    printf("%s", input);
    printf("??!"); // <<이 부분이 에러>>
}

 단순히 printf("??!"); 로 했더니 처음 보는 에러가 나타났다.

 

warning: trigraph ignored [-Wtrigraphs]

https://penguin-kim.tistory.com/30

 

Trigraph ignored 에러의 원인과 해결방법

1. warning : trigraph ignored  백준 알고리즘 문제들 풀다가 낯선 에러를 만났다. 3중음자가 무시되었다..? 이게 무슨 소리람.. warning : trigraph ignored [-Wtrigraphs] printf("??!"); 2. trigraph ignor..

penguin-kim.tistory.com

 

ISO 646 문자 집합에는 C 문법의 모든 문자가 포함되어 있지 않기 때문에 키보드와 디스플레이가 있는 일부 시스템이 해당 문자를 처리할 수 없는 경우도 있다고 한다. 그래서 trigraph를 사용해 replacement에 있는 문자를 사용하도록 한 것이다. trigraph 기능을 끄는 방법도 있고 역슬래쉬 ('\')를 사용해 에러를 잡을 수 있다.

 

#include <stdio.h>

int main(){
    char input[51] = {0,};
    scanf("%s", input);
    printf("%s", input);
    printf("\?\?!");
}

 

에러 없이 아주 잘 나온다 :)

 

profile

김펭귄 관찰일기

@Penguin.Kim