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

yuniv님의 프로필 이미지

작성한 질문수

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

3-M

3-M 코드 질문입니다.

해결된 질문

24.06.14 11:43 작성

·

131

·

수정됨

0

안녕하세요 큰돌님!
큰돌님께서 풀이해주신 방법과 제가 풀이한 방법이 좀 달라서 이 방법도 혹시 괜찮은지 궁금해서 여쭤봅니다.

http://boj.kr/c5b8619d1ed146ddb24e67d078bb1cb8

 

visitied 대신, 순열로 생각해서 풀이했습니다.

부등호 비교하는 로직은 atoi를 하지 않아도 아스키코드상으로 값이 클 것을 예상하여 직접 비교하였습니다.

최대값, 최소값의 경우에는 가능한 경우의 수를 모두 벡터에 string으로 넣어 sort로 정렬한 후, 앞뒤만 가져오는 방법을 사용했습니다.

 

혹시 이 방법이 아니라 원복을 사용하신 이유가 순열을 만들때 추가로 사용되는 시간 때문인가요?

답변 2

1

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

2024. 06. 14. 18:54

안녕하세요 yuniv님 ㅎㅎ

잘 짜시긴 했는데요 ㅎㅎ 피드백을 드리면 다음과 같습니다.

 

visitied 대신, 순열로 생각해서 풀이했습니다.

>> 이 경우에는 방문한 숫자에 대한 부분을 처리를 못하기 때문에 시간복잡도는 10!로 매우 큽니다.

 

부등호 비교하는 로직은 atoi를 하지 않아도 아스키코드상으로 값이 클 것을 예상하여 직접 비교하였습니다.

>> 잘하셨습니다.

최대값, 최소값의 경우에는 가능한 경우의 수를 모두 벡터에 string으로 넣어 sort로 정렬한 후, 앞뒤만 가져오는 방법을 사용했습니다.

>> 괜찮습니다. 다만 이부분은 이 문제의 범위 자체가 0 ~ 9까지만 나오기 때문에 string으로 처리할 수 있다는 것도 알아두시면 좋습니다.

예를 들어 11, 12 이런 식의 숫자가 나오게 되면 1112 이런식으로 구분하기가 어렵게 되기 때문에 이 경우에는 string으로 하게 되면 안됩니다.



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

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

감사합니다.

강사 큰돌 올림. 


0

인프런 AI 인턴님의 프로필 이미지

2024. 06. 14. 11:46

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

yuniv님의 질문에 대해 답변드리겠습니다. 제공해 주신 링크와 질문의 내용을 바탕으로, 비슷한 문제 해결 방법에 대해 토론한 기존 답변을 참고해보시는 것을 추천드립니다.

유사한 질문과 답변

해당 답변에서는 3-M 및 공부 방법에 대한 질문으로, 문제를 푸는 다양한 접근 방식과 공부 방법에 대한 고민을 나눴습니다. 또한, 문자열을 이용하여 문제를 해결하는 방법의 효율성에 대한 논의도 포함되어 있습니다.

  • 3-M 및 공부 방법 - 설명된 내용 중, 복잡한 로직 없이 직관적으로 문제를 해결하는 방안에 대한 논의가 있습니다. 여기서는 특히 순열을 이용한 접근 방식과 기타 효율성에 논의가 진행되었습니다. yuniv님의 질문에 대해 큰돌님은 특정 알고리즘을 적용한 이유와 문제 풀이시 고려해야 할 요소들에 대해 상술하셨습니다.

yuniv님의 질문에서 언급된 순열을 이용한 접근 방식과 부등호 비교 로직 등은 문제를 풀기 위한 하나의 유효한 방법입니다. 특히 아스키코드를 활용한 비교 로직은 문자열 관련 문제에서 자주 사용되는 테크닉 중 하나로, yuniv님이 선택한 방법이 효율성 측면에서도 나쁘지 않을 수 있습니다. 그러나 각 방법의 성능은 문제의 조건이나 입력되는 데이터의 규모 등에 따라 달라질 수 있으므로, 전체적인 알고리즘의 시간 복잡도나 공간 복잡도를 고려하여 최적의 방법을 선택하는 것이 중요합니다.

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

yuniv님의 프로필 이미지

작성한 질문수

질문하기