작성
·
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 .. 부분이 앞으로 오는게 더 나은 코드입니다. ㅎㅎ 잘찾으셨네요
선생님 정답 코드에는 아래 두 줄 코드가 아래처럼 되어 있는데 순서를 이렇게 하신 특별한 이유가 있을까요?
-> 사실 별 이유가 없습니다.. 하하;; 문제를 빨리풀다가 저렇게 한것 같습니다. 근데 순서를 바꿔도 효율성의 차이가 그렇게 크지는 않기 때문에 저 순서대로 하셔도 무방합니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
Blaire님, 질문 주신 내용에 대해 관련된 정보를 제공해드리고자 합니다. 팰린드롬 문제의 코드를 구현할 때, 특정 조건문들의 순서와 구조에 대해 의문을 가지실 수 있습니다. 이와 관련된 내용은 다른 수강생이나 강사님이 이미 다룬 적이 있으며, 코딩 구현의 최적화를 목적으로 코드의 순서나 구조에 민감하게 반응할 수 있습니다.
해당 문제에 대한 설명 및 해결 과정은 다음과 같은 기존의 질문과 답변에서 찾을 수 있습니다:
일반적으로, 코드에서 조건문의 순서를 변경할 경우 프로그램의 흐름과 성능에 영향을 미칠 수 있습니다. if(mid)
코드에서 mid
가 존재할 경우 ret.insert
를 수행하는 로직이 있는 반면, flag
값이 2일 때 팰린드롬을 만들 수 없는 조건을 빠르게 처리하기 위해 오류 메시지를 출력하는 코드로 찾을 수 있습니다. 이러한 로직은 코드 작성자의 의도나 로직 최적화를 위한 선택일 수 있습니다.
하지만, 코드는 읽는 사람이 쉽게 이해할 수 있도록 작성되는 것이 좋습니다. 단순히 컴파일러 및 최적화 기능에 의존하기보다는 논리적 흐름에 따라 조건문 순서를 조정해보는 것도 괜찮습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
코테 처음 준비해서 막막했는데 선생임 강의 선택한건 너무 잘한 선택 같습니다.
열심히 계속 공부하겠습니다.
감사합니다🙏