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

재열님의 프로필 이미지

작성한 질문수

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

2-H

4659번 prev와 isVowel return 질문

작성

·

448

0

안녕하세요 오늘도 따라가고 있는 수강생입니다!

4659번 문제 정답코드에서 궁금한점이 2가지가 있어서 질문드려요!

  1. 교안에서 prev는 변수선언이 불가능하다고 했는데 왜 <bits/stdc++.h>에서 #define하지 않아도 실행이 가능한것인지.

  2. bool isVowel 함수에서 그 함수가 모음인지 아닌지를 판단하는 함수인건 이해했는데 조건이 return되는 것이 어떤 문법 인지를 잘 모르겠습니다 ㅜㅜ

답변 3

2

안녕하세요 지나가는 수강생입니다!

1. 코드에서 prev는 지역 변수로 선언돼서 컴파일할 때 지역 변수로 매칭이 돼서 에러가 없는 것입니다.

반면 전역변수로 선언하시면 컴파일러가 <bits/stdc++.h>에 있는 prev와 전역으로 선언된 prev중 어느 것으로 해석할지 모르기 때문에

컴파일 에러가 납니다.

예를 들면

#include <bits/stdc++.h>

using namespace std;

int a = 1;

int main()

{

int a = 0;

cout << a << endl;

}

이 코드가 에러 없이 0을 출력하는 것과 같은 것이라고 생각하시면 됩니다.

2. bool b = (idx == 'a' || idx == 'e' || idx == 'i' || idx == 'o' || idx == 'u');

return b;

와 같다고 생각하시면 됩니다.

선생님의 코드는 연산한 결과를 바로 리턴하는 것이구요.

1

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

재욱님이 잘 설명해주셨네요 ㅎㅎ 2번을 좀 더 첨언하자면 1 == 1은 어떤 값을 반환할까요? true죠? 그러한 값을 반환하다고 이해하시면 됩니다.

좀 더 풀어쓰자면 bool a = 1 == 1; return a; 이렇게 되어야 겠지만 retrun 1 == 1로도 가능합니다.

감사합니다.

0

재열님의 프로필 이미지
재열
질문자

모두 감사합니당!!!

재열님의 프로필 이미지

작성한 질문수

질문하기