책 내용 질문하기
527쪽 38번 문제
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
527
조회수
154
작성일
2019-05-31
작성자
강*훈
첫번째 for 문에서 int i[] : a라고 하면 0행을 넣나요? 아니면 1차원배열로 바꿔서 9열을 넣나요? for (int j : i) tot += j 무엇을 반복하라는건지 잘 모르겠습니다. 저번 질문에 질문자가 어느정도인지 감안할 수 없어 답변을 어느정도선에서 해야하는지 모르겠다고 하셨는데 이문제는 도저히 모르겠습니다 아무것도 모르는 사람이라 생각하고 자세한 설명 부탁드리겠습니다.
답변
2019-05-31 11:18:49

안녕하세요 길벗수험서 운영팀입니다.

 

for (int i[] : a) 는 2차원 배열인 a를 1차원 배열인 i[]로 나눠받겠다는 의미입니다.

위의 a배열의 선언문을 보세요.

a는 2차원 배열로 이것을 풀면

a[0][4] 

a[1][3] 

로 구성되어 있습니다.

 

이것을 1차원 배열의 자료형 i[]로 받겠다는 의미죠.

즉, 1회 회전 때 i[]는 i[4]= {1, 1, 0, 1, 0}; 이 되겠고,

2회 회전 때 i[]는 i[3] = {1, 0, 1, 0}; 이 되어

2차원 배열 a가 갖고 있는 1차원 배열의 개수 만큼 회전하게 됩니다.

 

이제 안쪽 for문을 보죠.

for (int j:i)는 i 배열을 int자료형 만큼 나눠 받겠다고 합니다.

바깥 for문(for(int i[]:a))의 첫 회전에서 i[]는 int자료형 5개를 갖고 있습니다. {1, 1, 0, 1, 0}

즉, 각 자료를 5번 나눠받으며 5회 회전하게 되죠.

 

바깥 for문이 두번째 회전에서는 i[]는 int자료형 4개를 갖고 있으니 4번 회전하게 됩니다. {1, 0, 1, 0}

 

추가로 의문이 있으시다면 이해되지 않은 부분을 구체적으로 질문 주시면 해당 부분에 대해 상세히 설명드리겠습니다.

 

행복한 하루되세요 :)

  • 관리자
    2019-05-31 11:18:49

    안녕하세요 길벗수험서 운영팀입니다.

     

    for (int i[] : a) 는 2차원 배열인 a를 1차원 배열인 i[]로 나눠받겠다는 의미입니다.

    위의 a배열의 선언문을 보세요.

    a는 2차원 배열로 이것을 풀면

    a[0][4] 

    a[1][3] 

    로 구성되어 있습니다.

     

    이것을 1차원 배열의 자료형 i[]로 받겠다는 의미죠.

    즉, 1회 회전 때 i[]는 i[4]= {1, 1, 0, 1, 0}; 이 되겠고,

    2회 회전 때 i[]는 i[3] = {1, 0, 1, 0}; 이 되어

    2차원 배열 a가 갖고 있는 1차원 배열의 개수 만큼 회전하게 됩니다.

     

    이제 안쪽 for문을 보죠.

    for (int j:i)는 i 배열을 int자료형 만큼 나눠 받겠다고 합니다.

    바깥 for문(for(int i[]:a))의 첫 회전에서 i[]는 int자료형 5개를 갖고 있습니다. {1, 1, 0, 1, 0}

    즉, 각 자료를 5번 나눠받으며 5회 회전하게 되죠.

     

    바깥 for문이 두번째 회전에서는 i[]는 int자료형 4개를 갖고 있으니 4번 회전하게 됩니다. {1, 0, 1, 0}

     

    추가로 의문이 있으시다면 이해되지 않은 부분을 구체적으로 질문 주시면 해당 부분에 대해 상세히 설명드리겠습니다.

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.