본문 바로가기

C 언어

백준으로 배우는 C 언어 03. We love kriii

저번 강좌에 이어서 두 번째 강좌네요! 두 번째 문제인 We love kriii에서는 저번 Hello World에 이어 printf 함수를 조금 더 디테일하게 살펴볼 겁니다. 바로 시작할까요?!


 

백준으로 배우는 C 언어 01. Xcode 설치하기

C 언어를 배우기 시작하면서 이것저것 찾아보다가 백준(Baekjoon)이라는 사이트를 알게 되었는데요, 기초부터 고급까지 수만 개의 문제들을 풀어볼 수 있는 사이트입니다. 코딩에 관한 기초 지식만 있다면 단계별..

torotoblog.tistory.com

 

백준으로 배우는 C 언어 02. Hello World!

프로그래밍을 배우기 시작하면 항상 한 번씩은 해보는 것이 있죠. 바로 Hello World!인데요, 백준 역시 "세상아 반갑다"로 시작을 하네요. 백준 단계별 풀어보기의 첫 단계인 입출력과 사칙연산의 1번 문제 Hello..

torotoblog.tistory.com


문제를 살펴봅시다! 백준 https://www.acmicpc.net/ 단계별로 풀어보기의 입출력과 사칙연산 > We love kriii 문제입니다. 어쩌고 저쩌고 긴 서론 뒤에 결론은 격려의 문구를 출력해달라는 거네요. 입력은 없고 출력으로 강한친구 대한육군을 두 번 출력하라고 합니다. 여기서 주의할 점은 한 번 출력한 뒤 줄 바꿈을 해야 합니다. 그럼 바로 코딩을 시작해보도록 하죠.

#include <stdio.h>

int main(void) {
    printf("강한친구 대한육군\n강한친구 대한육군\n");
    return 0;
}
#include <stdio.h>

int main(void) {
    printf("강한친구 대한육군\n");
    printf("강한친구 대한육군\n");
    return 0;
}

이번 문제는 두 가지 방법으로 코드를 짤 수 있습니다. 둘의 차이점이라면 printf를 한 번 쓸지 두 번 쓸지의 차이죠. 최적화를 생각한다면 첫 번째 방법으로 사용되는 코드를 최소화하는 게 좋습니다. 하지만 지금 같이 코드가 몇백, 몇천 줄씩 하는 무거운 프로그램을 만드는 게 아니라면 개인적으로는 두 번째 방법이 보기도 편하고 깔끔해 보이기 때문에 printf를 여러 번 사용하더라도 두 번째 방법을 좋아합니다. 그래서 앞으로도 최적화가 중요한 문제가 아닌 이상 두 번째 방법으로 줄을 나눠서 설명드리겠습니다. 

다른 부분들은 저번 강좌에서 이미 다 설명한 내용들이기 때문에 새로운 부분만 설명하도록 할게요. stdio.h, int main(void) 등이 뭔지 모르는 분들은 저번 강좌를 먼저 보고 오시기 바랍니다. 

printf("강한친구 대한육군\n");
printf("강한친구 대한육군\n");

저번 Hello World를 할 때는 한 줄만 프린트하면 됐었죠. 하지만 이번에는 두 줄에 걸쳐서 강한친구 대한육군이라는 문구를 프린트해야 합니다. 저번에 잠깐 설명했듯이 \n 기호를 사용해서 줄 바꿈을 할 수 있죠. 만약 여기에 \n을 포함시키지 않았다면 결과물은 한 줄로 된 강한친구 대한육군이 되어있을 겁니다. 

printf("강한친구 대한육군\n강한친구 대한육군\n");

\n 기호는 꼭 문자열 끝에 들어가지 않아도 됩니다. 첫 번째 방법에 사용된 것처럼 중간에 들어가더라도 문제없이 줄 바꿈이 됩니다. 이렇게 하면 printf 함수를 한 번만 호출하기 때문에 최적화가 되지만 단점은 코드만으로는 언제 줄 바꿈이 되는지 한눈에 확인하기가 힘들다는 점이죠. 

이제 코드가 제대로 작동하는지 확인을 해 봅시다. 좌측 상단의 디버그 버튼을 클릭한 후 우측 하단에 출력이 원하는 대로 나온다면 성공입니다!

이제 제출을 해야죠! 백준으로 돌아와서 제출 탭에 들어가 줍시다. 언어를 C로 선택하고 코드를 입력한 뒤 제출 버튼을 클릭하시면 됩니다.

위 사진을 자세히 살펴보면 두 같은 문제이지만 두 제출물의 코드 길이가 다른 것을 볼 수 있습니다. 135B 길이의 문제는 지금 우리가 사용한 두 번째 방법(printf를 두 번 사용)이고요, 122B 길이의 문제는 최적화가 조금 더 잘 돼있는 첫 번째 방법입니다. 물론 지금은 짧은 코드라서 겨우 13의 차이밖에 나지 않지만 만약 코드가 길어진다면 더욱 큰 차이가 나게 되겠죠. 나중에 프로그램을 개발하게 된다면 최적화가 중요하다는 점을 참고하시면 좋겠습니다. 


 

백준으로 배우는 C 언어 04. 고양이

printf 함수는 문자만 프린트할 수 있는 게 아닙니다. 특수 문자들도 출력할 수가 있는데요, 특수 문자들을 잘만 조립한다면 그림을 그릴 수도 있죠. 다만 프로그래밍을 할 때 일부 특수 문자는 좀 특별한 방법으..

torotoblog.tistory.com