강의

멘토링

로드맵

Inflearn brand logo image

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

snow4532님의 프로필 이미지
snow4532

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

(기출) 2023년 1회 코드해석 문제

13:40 di가 ..

해결된 질문

작성

·

45

0

질문이 2개인데요...

문제 풀이영상을 보면

sum + (input[a][b]) * di ;

input[a][b]에 %10을 넣으면

뭐 때문에 순차적으로

0 , 10, 100, 1000, 00000, 100000 이렇게

되는지 이해가 안되고,

 

2번째는

di가 1부터 시작을 하고 di*2면

2,4,6,8,10 이렇게 커지는거 아닌가요?

그렇다면 2의2승 2의3승 2의4승 2의5승 이렇게 커지지 않으니까 계산이 안되는 것 같은데 ㅠ..

 

좀 어렵네요

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

첫번째의 질문은 [a], [b]에 각각 어떤 연산자나 숫자가 들어가야하는지를 묻는 질문입니다.

 

그래서 정답이 %, 10이 된다는 것이고요.

 

지금 중요한 것은 나머지를 가져와서 2를 곱하는 것입니다.

2진수라는 것은 각 자리수가 2의 제곱수가 늘어나는 과정입니다.

예를 들어 1011이라고 하면, 이것은 2^3*1, 2^2*0, 2^1*1, 2^0*1인 것입니다.

지금 2진수의 숫자는 정해져있습니다. 101110이죠. 여기서 맨 뒤의 자리수만 잘라서 2를 곱하면 2진수를 10진수로 변환하게 됩니다. 그리고 각 자리수가 늘어날 때마다 2를 제곱한 다음에 곱하면 다음 번 숫자의 2진수를 구하게 되는 것이죠.

 

이걸 모두 누적하면 그게 곧 10진수가 되는 것입니다.

 


위의 설명을 단지 말로 설명하면 이해가 어렵습니다.

빈 종이를 가져오셔서 직접 가장 끝의 자리수를 2와 곱해가면서 누적해보세요.

그럼 왜 2진수가 10진수로 변환되는 코드로 되는지 알 수 있습니다.

 

두번째 질문의 경우 4 곱하기 2를 하면 6이 아닙니다. 4*2는 8이죠.

그래서 2의 배수가 됩니다.

0

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

질문해주신 내용을 통해 비교연산자와 조건문 문제에서 혼란스러운 부분을 해결해 드리고자 유사한 기존 답변을 안내드립니다. 아래의 링크에서 관련 문제 풀이와 개념 설명을 참고하실 수 있습니다.

  1. 반복문과 배열의 접근에 대한 설명:

    • 비교연산자와 반복문+조건문 문제풀이: 이 질문에서는 입력 배열의 인덱스와 계산 흐름을 이해하는 방법에 대한 상세한 설명이 포함되어 있습니다. 이 과정을 통해 input 배열의 값을 누적하는 과정에서 각 요소가 어떻게 처리되는지 참고해 보실 수 있습니다.
  2. 지수승의 증가에 대한 이해:

기본적으로, sum + (input[a][b]) * di ;의 수식을 통해 input[a][b] 값이 di와 함께 곱해져 누적됨을 알 수 있습니다. input[a][b]의 각 값을 나머지 연산 %10을 통해 자릿수가 조정되며 더해지기 때문에 시퀀스가 0, 10, 100...처럼 증가할 수 있습니다.

또한, di1부터 시작하여 2배씩 증가하는 구조라면, 1, 2, 4, 8, 16...과 같은 지수승의 형태로 증가되고, 계산 시에는 이 형태를 이해하는 것이 중요합니다.

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

snow4532님의 프로필 이미지
snow4532

작성한 질문수

질문하기