강의

멘토링

로드맵

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

Blaire님의 프로필 이미지
Blaire

작성한 질문수

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

1-K

1-K. 팰린드롬 정답 코드 관련 질문

작성

·

28

·

수정됨

0

안녕하세요 선생님

다름 아니라 설명하신 문제 정답 코드에 대해 질문이 있습니다.

선생님 정답 코드에는 아래 두 줄 코드가 아래처럼 되어 있는데 순서를 이렇게 하신 특별한 이유가 있을까요?

제가 생각해보기에는 두 줄의 위치를 바꾸는 것이

굳이 팰린드롬을 만들 수 없는데 mid가 존재하는 경우에 ret.insert(~~)구문을 실행할 필요가 없어 더 좋아보여 여쭤봅니다.~~

if(mid) ret.insert(ret.begin() + ret.size()/2, mid);
if(flag == 2) cout << "I'm sorry Hansoo\n"; 

답변 2

1

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

안녕하세요 ㅎㅎ

굳이 팰린드롬을 만들 수 없는데 mid가 존재하는 경우에 ret.insert(~~)구문을 실행할 필요가 없어 더 좋아보여 여쭤봅니다.

-> 네 맞습니다. if flag .. 부분이 앞으로 오는게 더 나은 코드입니다. ㅎㅎ 잘찾으셨네요

 

선생님 정답 코드에는 아래 두 줄 코드가 아래처럼 되어 있는데 순서를 이렇게 하신 특별한 이유가 있을까요?

-> 사실 별 이유가 없습니다.. 하하;; 문제를 빨리풀다가 저렇게 한것 같습니다. 근데 순서를 바꿔도 효율성의 차이가 그렇게 크지는 않기 때문에 저 순서대로 하셔도 무방합니다.

 

감사합니다.

Blaire님의 프로필 이미지
Blaire
질문자

코테 처음 준비해서 막막했는데 선생임 강의 선택한건 너무 잘한 선택 같습니다.

열심히 계속 공부하겠습니다.

감사합니다🙏

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

저도 감사합니다. ㅎㅎ 제 강의 믿구 끝까지 홧팅하시구 꼭 코테 합격하시길 바랄게요 ㅎㅎ

0

안녕하세요, 인프런 AI 인턴입니다.

Blaire님, 질문 주신 내용에 대해 관련된 정보를 제공해드리고자 합니다. 팰린드롬 문제의 코드를 구현할 때, 특정 조건문들의 순서와 구조에 대해 의문을 가지실 수 있습니다. 이와 관련된 내용은 다른 수강생이나 강사님이 이미 다룬 적이 있으며, 코딩 구현의 최적화를 목적으로 코드의 순서나 구조에 민감하게 반응할 수 있습니다.

해당 문제에 대한 설명 및 해결 과정은 다음과 같은 기존의 질문과 답변에서 찾을 수 있습니다:

  • 백준 1213번 질문입니다!: 이 질문에서는 팰린드롬 조건 처리에 대한 논의가 진행되었습니다.
  • 1-K 질문드립니다!: 해당 질문 답변에서는 팰린드롬 문제에서 조건문 사용의 이유와 그 의미를 설명하고 있습니다.

일반적으로, 코드에서 조건문의 순서를 변경할 경우 프로그램의 흐름과 성능에 영향을 미칠 수 있습니다. if(mid) 코드에서 mid가 존재할 경우 ret.insert를 수행하는 로직이 있는 반면, flag값이 2일 때 팰린드롬을 만들 수 없는 조건을 빠르게 처리하기 위해 오류 메시지를 출력하는 코드로 찾을 수 있습니다. 이러한 로직은 코드 작성자의 의도나 로직 최적화를 위한 선택일 수 있습니다.

하지만, 코드는 읽는 사람이 쉽게 이해할 수 있도록 작성되는 것이 좋습니다. 단순히 컴파일러 및 최적화 기능에 의존하기보다는 논리적 흐름에 따라 조건문 순서를 조정해보는 것도 괜찮습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Blaire님의 프로필 이미지
Blaire

작성한 질문수

질문하기