백준 새싹 출력 문제들

김기루·2024년 3월 4일

백준 새싹

목록 보기
2/4


어제 2557 문제를 푼 후 오늘은 나머지 새싹 출력 파트의 있는 문제들을 풀어보겠습니다.

c++


어제 글에서 파이썬으로 문제를 해결하겠다고 한지 하루만에
앞으로는 C++로 백준을 풀기로 변경하였습니다.

또 앞으로는 visual studio code가 아닌 dev c++에서 코드를 작성하겠습니다.



순서대로 오늘날짜(10699) 부터 새싹(25083)까지 풀어보겠습니다.


문제에 들어가기 앞서..

지난 파이썬에서는 문자열을 출력하기 위해 단순히 print함수를 이용하여 문자열을 출력했다, c++을 조금 다릅니다.

#include <iostream>
using namespace std;

int main()
{


}

그냥 바로 print함수를 써서 풀었던 파이썬과는 다르게 c++은 코드를 입력하기 전에 기본 구조를 나타내는 코드를 작성해 준 후에 코드를 작성해야 합니다.

이것들은 입출력 헤더파일 블라블라 인데, 지금은 자세히 알고 넘어가지 않아도 괜찮기 때문에

지금은 단순히 저 구조 자체를 외워서 마치 나가기 전 옷을 입는 것처럼 자연스러운 행동(?) 코드(?)라고 외워주시면서 손에 익도록 연습하면 됩니다.


C++에서 텍스트 출력하기

파이썬에서는 'Hello World!'를 출력하기 위해서

print("Hello World!");

라고 입력했습니다.

하지만 C++에서 텍스트를 출력하기 위한 코드는 다음과 같습니다

cout<<"Hello World!";

사실 출력을 위해선 cout 앞에 std::를 붙여서

std::cout<<"Hello World!";

로 써야 하지만 위에서 기본 구조를 작성할 때

using namespace std;

를 두번째 줄에서 선언했기 때문에 c++에서 출력을 하기 위해선 단순히

cout<<"Hello World";

만 입력해줘도 가능합니다!


using namespace std; 와 std:: 가 무엇인지에 대해서는 본문이 길어지기 때문에 이 바로 다음강에서 설명해보도록 하겠습니다.


#10699 오늘날짜

위에서 배운 출력문을 통해 문제를 해결해 보도록 하겠습니다.

#include <iostream>
using namespace std;

int main()
{

	cout<<"2024-03-04";
}

위 코드처럼 c++의 출력문을 통해 문제를 간단히 해결하였습니다!


#7287 등록


이번 문제에서는 첫 번째 줄에 내가 지금까지 맞춘 문제 수와
두번 째 줄에는 나의 아이디가 출력되도록 작성하면 해결할 수 있는 문제입니다.


현재 맞춘 문제 수인 숫자 2와 제 아이디를 적었습니다.

여기서 중요한 것은


문제에서 요구하는 출력값은
(문제수)(내 아이디)

가 아니라

(문제수)
(내 아이디)

입니다.

1번 줄에 문제 수, 2번 줄에 아이디가 출력되도록 작성해야 합니다.
이렇게 텍스트 줄바꿈을 하기 위해선

\n을 사용하면 됩니다.

\n이란 줄 바꿈을 해주는 코드로 \n 뒤에 있는 문자를 다음 줄로 줄 바꿈 시켜줍니다.

ex)

안녕하세요\n저는***입니다.

결과 :

안녕하세요
저는***입니다.


그런데 여기서 \이란 백슬래시인데, 기본적인 한글 폰트를 사용하는 경우
\ (원) 표시로 표시됩니다. 하지만 생김새는 달라도 효과는 같습니다.!!

#include <iostream>
using namespace std;

int main()
{

	cout<<"2 \n";
	cout<<"girookim111";
}

다음과 같은 코드로 문제를 해결하였습니다.
저는 2와 girookim111을 cout를 두번 사용해서 나타내었지만

#include <iostream>
using namespace std;

int main()
{

	cout<<"2\ngirookim111";
}

다음과 같이 cout를 한 번 사용해서 문제를 해결할 수도 있습니다.


#10171 고양이


이번에는 아래와 같은 고양이를 출력하는 문제입니다.

근데 사실 고양이 같진 않습니다..

사실 이 문제는 한 가지 함정이 있는데, 위에서 배웠던 cout<<"";과
\n을 응용해서 그냥

#include <iostream>
using namespace std;

int main()
{
	
	cout<<"\    /\"  \n;
	cout<<" )  ( ')  \n";
	cout<<"(  /  )   \n";
	cout<<" \(__)|";
	
}

라고 입력한다면 실행했을 때

정상적으로 실행이 되지 않습니다!!

왜 이러냐...!!

바로 앞서 배운 내용 중

\n    ( \ = 원이랑 같은 문자)

가 있습니다. 여기서 사용되는 \ (백슬래시)는 특별한 역할을 하는 문자이기 때문에 ""큰 따옴표 안에 사용할 때에는 \\두번 사용해줘야 출력됩니다.

cout<<"백슬래시 출력하기 \";      => 결과 : 에러



cout<<"백슬래시 출력하기 \\";     => 결과 : 백슬래시 출력하기 \

이제 이걸 사용해서 다시 코드를 작성한다면

#include <iostream>
using namespace std;

int main()
{
	
	cout<<"\\    /\\\n";
	cout<<" )  ( ')\n";
	cout<<"(  /  )\n";
	cout<<" \\(__)|";
	
}

위 코드와 같이 백슬래시 부분을 두번 사용하여 문제를 해결할 수 있습니다.

*만약 제출을 했는데, "출력 형식이 잘못되었습니다" 라는 에러가 뜰 경우 \n와 고양이 텍스트 사이 여백을 없애주세요.


#10172 개


이번 문제는 그림과 같은 개를 출력하는 문제입니다.
위에 고양이와 다를게 별로 없으니 빠르게 풀어보도록 해보겠습니다.

#include <iostream>
using namespace std;

int main()
{
	
	cout<<"|\\_/|\n";
	cout<<"|q p|   /}\n";
	cout<<"( 0 )"""\\\n";
	cout<<"|"^"`    |\n";
	cout<<"||_/=\\\\__|";

}

다음 과 같은 코드로 실행을 해본다면

???????

\ 출력도 두 번 붙이고 잘 한 것 같은데, 에러가 발생합니다.


에러가 뜨는 이유

"" 또한 백 슬래시와 같은 특별한 역할을 하는 문자이기 때문입니다.
cout << " " ; 라는 출력문에서
큰 따옴표 안에 들어간 텍스트를 출력하기에, 큰 따옴표도 백 슬래시와 같이 그냥 입력하면 에러가 발생합니다.

에러를 해결하기 위해서

"앞에 \백슬래시 하나를 붙여주면 정상적으로 큰따옴표가 출력되는 것을 확인할 수 있습니다.

#include <iostream>
using namespace std;

int main()
{
	
	cout<<"|\\_/|\n";
	cout<<"|q p|   /}\n";
	cout<<"( 0 )\"\"\"\\\n";
	cout<<"|\"^\"`    |\n";
	cout<<"||_/=\\\\__|";

}

다음과 같이 코드를 작성하여 문제를 해결하였습니다!


#25083 새싹


이번 문제도 사실 앞에 개와 고양이의 연장선인 문제이니 빠르게 해결해 보도록 하겠습니다.

#include <iostream>
using namespace std;

int main()
{
	
	cout<<"         ,r'\"7\n";
	cout<<"r`-_   ,'  ,/\n";
	cout<<" \\. \". L_r'\n";
	cout<<"   `~\\/\n";
	cout<<"      |\n";
	cout<<"      |";

}

여태까지 배운 모든것들을 응용해서 쉽게 풀 수 있었습니다.

(사실 백슬래시 넣어야 되는 곳 찾느라 눈 빠질 뻔 했습니다)


글을 마무리 하며


이번 글에서는 이렇게 총 5개의 새싹단계 출력파트 문제들을 해결해 보았습니다.

5개의 문제들을 한 글에다 적다보니 분량이 너무 길어진 것 같아 입력과 계산 파트 부터는 한 문제 한 문제 따로따로 포스팅 해보도록 하겠습니다.

0개의 댓글