인프런 커뮤니티 질문&답변

ahrngs님의 프로필 이미지
ahrngs

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2주차 개념 #7. 맵과 방향벡터(direction vector)

크기가 정해지지 않은 자료 입력받기

작성

·

468

·

수정됨

0

안녕하세요, 항상 양질의 강의 잘 듣고 있습니다!

어디에 질문해야할지 모르겠어서 부득이하게 여기 올립니다. 다들 잘 하시는데 저 혼자 너무 초보자같은 질문이라 조금 부끄럽네요..

문제를 풀 때, 크기가 정해지지 않은 전제조건을 해결하는게 너무 어렵습니다ㅠㅠ 예를 들면 아래와 같은 의문이 듭니다..

  1. 크기가 주어지지 않은 2중 배열(N*N) 입력받아서 복제하기 - 크기도 끝도 모르고 N*N 조건만 있으면 문자열로 입력받아서 atoi 해서 잘라서 넣어야하나?

  2. 3의 배수의 크기로 입력받기, 자료값은 1또는 2또는 3만 받을 수 있다 - 입력받은 사이즈가 3의 배수가 아니거나 1,2,3 외의 숫자가 들어오면 어떻게 처리하지..? 프로그램을 멈추거나 조건에 맞게 들어올때까지 pop, push 해야하나..?

제가 보기에도 너무 베이스가 없는 질문같지만 혼자 해결하기 어려워서 질문 드립니다..!

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 ah님 ㅎㅎ

  1. 크기가 주어지지 않은 2중 배열(N*N) 입력받아서 복제하기 - 크기도 끝도 모르고 N*N 조건만 있으면 문자열로 입력받아서 atoi 해서 잘라서 넣어야하나?

>> 음 문제에서 N N의 맵을 입력받는다. 그리고 이 맵의 최대범위는 10 곱하기 10이라면. a[14][14]이런식으로 선언하면 됩니다. 문자열로 꼭 입력 받지 않아도 됩니다. 맵 자체가 'c', 't' 이런식으로 문자로 되어있다면 문자열로 받아서 자르는 걸 수행해야 되지 만요.

  1. 3의 배수의 크기로 입력받기, 자료값은 1또는 2또는 3만 받을 수 있다 - 입력받은 사이즈가 3의 배수가 아니거나 1,2,3 외의 숫자가 들어오면 어떻게 처리하지..? 프로그램을 멈추거나 조건에 맞게 들어올때까지 pop, push 해야하나..?

음.. 혹시 어떤 문제를 풀고 계신건가요? 지문을 보면 좀 더 정확히 알 수 있을 것같아요. ㅎㅎ

어떤 문제를 푸시는지 말씀해주시면 더 정확한 답변이 될 것같습니다.

근데 유추해서 한번 답변해볼게요.

자료값은 1또는 2또는 3만 받을 수 있다. = 이거는 그 외에 입력은 그냥 "무시"하면 됩니다.

이런식의 코드가 되겠죠?

	int a; 
	while(true){
		cin >> a; 
		if(a != 1 || a != 2 || a != 3)continue; 
	}

만약 이외의 값이 들어왔을 때 종료를 시켜야 한다면?

	int a; 
	while(true){
		cin >> a; 
		if(a != 1 || a != 2 || a != 3)break; 
	}

이런식의 코드가 되겠죠? ㅎ

 

아 그리고 사실 비밀스럽게 말씀드리면, ah보다 더 기본적인 거 물어보시는 분들 많습니다. ㅎㅎ

그렇기 때문에 ah님이 막 그렇게 초보인 건 아니에요 ㅎㅎ 그냥 궁금하시면 자유롭게 물어보시면 됩니다. 제가 이해가 될 때까지 답변 드릴게요. ㅎㅎ

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

ahrngs님의 프로필 이미지
ahrngs

작성한 질문수

질문하기