해결된 질문
작성
·
25
0
http://boj.kr/813b11c5e8f74277911b24d30bf3274d
저는 이렇게 풀었는데 이런식으로 struct선언 없이 2차원 배열을 사용해도 상관없나요??
그리고 사전 순으로 빠른 순이라는 것이
1 3 과 1 2 3 이 중에는 어떤 것이 더 빠른건가요?
길이에 초점을 맞춰야되는건가요? 아니면 앞자리부터 비교인건가요?
그리고 이 조건이 벡터 비교 조건과 동일한가요..? 사전 순 조건을 만족하기 위해
if(ret > nc || (ret == nc && vv < rett)){
이러한 조건을 넣었었는데 어쩌다가 얻어맞은 느낌이라 정확히 알고싶습니다. 정확히 벡터에서는 어떻게 비교를 하는지 궁금하고 사전 순으로 빠르다는것이 어떤것인지 궁금합니다..!
답변 2
0
안녕하세요 ㅎㅎ
저는 이렇게 풀었는데 이런식으로 struct선언 없이 2차원 배열을 사용해도 상관없나요??
-> 네 너무 잘하셨습니다. ㅎㅎ
1 3 과 1 2 3 이 중에는 어떤 것이 더 빠른건가요?
-> 1 2 3이 더 빠릅니다. 앞자리부터 진행합니다.
다만
예를 들어
vv = {1, 2, 3}
rett = {1, 2, 3, 4}
이 경우에는 vv가 더 빠릅니다.
if(ret > nc || (ret == nc && vv < rett)){
총비용보다 nc가 더 작다면 ||
그게 아니고 false 뜨면 -> ret == nc 같다면
vv < rett 이 되는데 이것은 벡터끼리의 비교로, 두 벡터를 처음부터 순차적으로 비교하여, 사전순으로 더 작은 집합을 선택합니다. 즉, 동일한 비용일 때는 인덱스가 더 작은 순서대로 아이템을 선택한 경우를 우선시합니다.
여기서 사전순 비교는 두 벡터의 각 원소를 순차적으로 비교하여, 첫 번째로 차이가 나는 원소를 기준으로 크기를 판단합니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
0
안녕하세요, 인프런 AI 인턴입니다.
AA66님이 질문하신 내용에 대한 답변을 드리겠습니다.
사전순 정렬과 관련된 질문에 대한 적절한 답변을 찾을 수 있는 기존의 유사한 질문과 답변을 추천드립니다.
AA66님의 사전순 비교와 관련된 질문에 대해 도움이 될 수 있는 기존 게시물을 소개드립니다:
2차원 배열 사용 관련:
2차원 배열을 사용해도 문제를 해결할 수 있습니다. 다만, 구조체를 사용하면 코드의 가독성을 높이고 관리하기 용이합니다.
사전 순으로 빠른 순서:
사전 순이라는 것은 사전에서 단어를 찾는 순서를 생각하면 됩니다. 예를 들어, “1 2 3”이 “1 3”보다 사전 순으로 앞에 옵니다. 이는 각 자리 수를 하나씩 비교하여 결정되며, 첫 번째 자리 수가 같으면 두 번째 자리 수를 비교하는 방식입니다.
벡터 비교 조건:
벡터는 기본적으로 사전순으로 비교됩니다. C++에서는 <
연산자가 사전순으로 벡터를 비교해줍니다. 따라서 조건문에서 vv < rett
가 사전 순으로 비교되고 있는 것입니다. 이는 사전 순 조건을 만족하며 작동합니다.
코드 예시:
if(ret > nc || (ret == nc && vv < rett)){
// 조건이 사전 순으로 빠른 순서와 맞습니다.
}
벡터 비교는 두 벡터를 각 요소를 첫 번째 요소부터 차례대로 비교하여 결정됩니다. 만약 어느 한쪽 벡터의 모든 요소가 동일하다면, 길이가 짧은 벡터가 앞에 옵니다.
질문에서의 코드와 설명을 통해, 올바른 조건을 사용하셨음을 알 수 있습니다. 만약 더 구체적인 예시나 설명이 필요하다면, 추천드린 링크를 참고하여 보시면 더 도움을 받을 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.