강의

멘토링

로드맵

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

ghtndl님의 프로필 이미지
ghtndl

작성한 질문수

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

2-G

2-G 답안 코드에서 출력 관련 질문이 있습니다.

작성

·

19

0

안녕하세요 큰돌님 강의 질문이 있습니다.

마지막 출력하는 부분에서 왜 하기와 같은 방식으로 출력하는 것인지 궁금합니다.

꼭 vector for문 내부에 pair 에 대한 for문이 들어가야하는걸까요? vector 만으로 접근은 안되는 것일까요?

 

for (auto it : v) {
    for (int i = 0; i < it.first; i++) {
      cout << it.second << " ";
    }
  }

답변 2

0

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

안녕하세요 ㅎㅎ

꼭 vector for문 내부에 pair 에 대한 for문이 들어가야하는걸까요? vector 만으로 접근은 안되는 것일까요?

-> vector에 있는 요소들이 pair로 이루어져있고 해당 pair를 끄집어내서 접근을 해야 합니다. 예를 들어 바구니 안에 공2개를 가진 바구니가 여러개가 있습니다. 각각의 바구니에석 공2개를 끄냄을 표현하려면 "해당 바구니에서 공 2개를 꺼낸다." 라는 문장이 필요하겠죠?

그런 이유와 동일하게 감싸져있는 pair로부터 first, second를 뽑아내야 하기 때문에 그 부분이 필요합니다.

 

감사합니다.

0

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

질문해주신 내용 관련하여 출력 방식에 대한 해설을 제공하겠습니다. 주어진 코드에서 vector의 요소가 pair로 이루어져 있기 때문에 pair의 첫 번째 요소와 두 번째 요소에 대해 각각 접근하기 위해 이중 루프를 사용하고 있습니다.

해당 코드에서는 vector에서 pairfirst 값만큼 반복하여 second 값 즉, 해당 값을 출력하고 있습니다. 즉, pair.first값이 카드의 개수를, pair.second가 실제 출력하고자 하는 값을 의미하는 것이라 볼 수 있습니다.

vector만으로 접근하지 못하는 이유는 vector 자체에 pair에 대한 정보를 가지고 있기 때문입니다. 그래서 pair 안의 데이터를 사용하기 위해서는 vector의 각 요소마다 pair 내부로 접근하는 방식이 필요합니다.

기존의 답변 내용을 참조하시길 권장합니다:
- 벡터 관련 질문: 벡터와 내부 자료구조에 대한 설명이 담긴 게시글입니다.

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

ghtndl님의 프로필 이미지
ghtndl

작성한 질문수

질문하기