728x90
반응형

문제

17284번 : Vending Machine

 

17284번: Vending Machine

첫째 줄에 정웅이가 누른 버튼의 번호가 공백으로 사이에 두고 주어진다. 정웅이는 버튼을 한 번 이상 눌렀다.

www.acmicpc.net

 

내가 작성한 코드 (C++ 성공)

#include <iostream>

using namespace std;

int main(){
	char btn;
	int mon = 5000;
	
	while(true){
		cin.get(btn);
		if(btn=='\n') break;
		
		if(btn=='1'){
			mon -= 500;
		} else if(btn=='2') {
			mon -= 800;
		} else if(btn=='3') {
			mon -= 1000;
		}
	}
	
	cout << mon;
	
	return 0;
}

 

정리

이 문제를 출제한 이유는 아마 입력을 어떻게 제어할 것인지? 일 것 같다.
입력에 대한 제한이 없기 때문에 엔터를 치게되면 입력이 종료되고 출력이 되어야 한다.
문제는 조건문만 잘 사용할 줄 알면 풀 수 있는 문제였기 때문에 문제 없이 해결할 수 있었고
입력하는 부분에 있어서는 엔터가 입력되면 입력이 끝나도록 짰다.

입력하는 부분에 있어서 문자형 char형을 이용해서 줄바꿈이라는 '\n' 를 입력하게 되면 입력이 끝나게 된다.

그리고 입력하는 데 있어 보통 이렇게 사용한다.

cin >> 변수명;

하지만 그냥 cin 만 사용하게 되면 공백이나 개행문자를 구분할 수 없기 때문에 다음과 같이 사용해줘야 한다.

cin.get(변수명);

cin.get() 을 사용하게되면 공백이나 개행문자를 포함해서 입력받게 된다.
따라서 줄바꿈 문자를 포함해서 입력하기 때문에 줄바꿈 문자가 들어오는 것을 확인할 수 있다.

728x90
반응형
복사했습니다!