1. 컴파일과 빌드

김효수 교수님, 컴파일러 강의 자료 중 일부, GCC가 작동하는 과정

김효수 교수님, 컴파일러 강의 자료 중 일부, GCC가 작동하는 과정

2. 백준 스페셜 저지

백준 문제 태그 중에 ‘스페셜 저지’가 있습니다.

기존의 문제는 정확히 문제에서 요구하는 출력을 해야 정답으로 인정됩니다.

스페셜 저지는 이런 식으로 정답을 판단할 수 없는 문제에 달리는 태그인데, 문제가 요구하는 “특정 출력”이 아니라 “조건을 만족하는 출력”이기만 하면 모두 정답으로 인정한다는 뜻입니다.

1008번: A/B

백준 1008번 문제 “A/B”가 그 예시 중 하나입니다.

출력
첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10^(-9) 이하이면 정답이다.

오차가 $10^{-9}$ 이하이기만 하면 모두 정답으로 인정해줍니다. 따라서 예제 입력 1인 1/3의 정답이 0.3333…의 무한 소수이지만 0.333333333 (3이 9개)를 출력해도 원래 정답과의 오차가 문제에서 제시한 오차보다 작으므로 정답으로 인정됩니다.

3. 소수 자릿수 지정 출력

3-1. 정수의 경우 (원래 작동과정)

변수를 출력하고 싶을 때 printf의 서식 문자를 이용하면 된다고 했습니다. 여기에 한가지 변형을 해줄 수 있습니다. 다음 코드는 어느 학생의 3과목의 점수를 출력하는 코드입니다.

int math, science, history;

printf("Enter score of math, science and history : ");
scanf("%d %d %d", &math, &science, &history);

printf("mat   sci   his\\n");
printf("%d    %d    %d\\n", math, science, history);

보시면 과목 이름끼리 3칸을 띄워주고, 그 밑에 점수를 적어주는 코드를 만들어주고 싶어하는 것처럼 보입니다.

하지만 입력이 1자릿수, 2자릿수, 3자릿수로 다양해서 출력이 상당히 많이 달라집니다.

Untitled

Untitled

Untitled