1. 아래 리스트를 조합해

하나의 딕셔너리로 만들고

이를 출력하시오

 

 

 

key_list = ["name", "hp", "mp", "level"]

value_list = ["마법사", 500, 800, 7]

character = { }

 

 

# 코드 작성

 

 

# 최종 출력

print(character)

 

 

# 출력값

=> {'name' : '마법사', 'hp' : 500, 'mp' : 800, 'level' : 7}

 

 

 

 

 

정답 :

 

 

 

 

 

 

서로 다른 리스트 두 개가

있는데 요소의 개수가 같다.

이를 함께 반복 시켜야 하는 경우에는

 

 

두 리스트 중 아무거나 선택 후

해당 리스트의 범위를 선택하

i라는 변수에 담아주고

chracter라는 딕셔너리의

키값으로 담는다.

 

 

그리고는 선택하지 않은 다른 리스트를

값으로 담아 출력!

 

 

 

 


 

 

 

 

2. 1부터 수를 증가시면서 더한다.

몇을 더할 때 1000을 넘는지 구해보고

그 때의 값을 출력해 보자.

 

 

 

 

실행 결과 예문)

 

 

142를 더할 때 10000을 넘으며

그때의 값은 10011입니다.

 

 

 

 

주어진 힌트)

 

 

limit = 1000

i = 1

 

#코드 작성

 

print ( "{ }를 더할 때 { }을 넘으면 값은 { }입니다.".format( i , limit, sum_value))

 

 

 

 

 

 

과정)

 

 

 

1. 먼저 sum_value를 변수로 만들어 주자.

 

sum_value = 0

 

 

 

 

2. 값을 더하며 반복하는 연산이 이루어져 하기

때문에 for 반복문이나 while 반복문 둘 중 하나를

선택해야 하는 상황. 두 가지 반복문의 차이점은

 

 

 

for 반복문은 대상이 몇 번 반복할지 예측이 가능할 때

사용하고 이 경우는 알 수 없으므로 while 반복문을

사용한다.

 

 

 

 

 

정답)

 

 

 

 

 

 

 

 

*많이 사용하는 코드이므로

꼭 기억해두자!

 

 

 

 


 

 

 

 

 

 

 

3. 최댓값 구하기

 

 

 

1부터 100까지 증가하는 수와

100부터 1로 감소하는 수가 있다.

 

 

이 두 가지가 동시에 진행될 때

만나는 숫자들을 곱할 경우

그중 가장 높은 값을 구해보시오.

 

 

 

 

정답)

 

 

 

 

 

 

 

 

 

 

 

먼저 1부터 100까지 증가하는 시스템을

range 함수를 사용해 i에 담아주고

 

 

 

반대로 동작하는 시스템을 j에 담아 준다.

 

 

 

이를 동시에 출력할 경우

 

 

1 99

2 98

3 97

 

 

의 형식으로 출력되게 된다.

 

 

 

다음으로,

 

 

 

만약 max_value의 값(0)이

i 와 j 두 수를 곱한 값보다

작다면

 

 

그 값을 max_value에 넣는다

( i * j 와 같다)라는 선언을 해준다.

 

 

 

이게 어째서 최댓값을 도출하는지

헷갈릴 수 있는데

 

 

 

두 수가 차례로 반복되어 곱해지는

과정을 보면 곱셈의 결괏값이

두 번씩 중복되게 되는데

 

 

 

딱 한 번! 값이 중복되지 않는

경우가 발생하며 그 경우가 바로

최댓값이다.

 

 

 

현재 max_value의 값이 i * j의 값보다

작은 경우에만 그 값을 max_value에

담는 조건이며

 

 

 

반복문의 특성상 다시 처음으로 돌아가

동일한 조건을 반복하게 되는데

이를 잘 생각해보면 원리를 파악할 수 있다.

 

 

 

이제 a 와 b를 i 와 j의 변수로

담아주고 출력하면 된다.

 

 

 

 

 

최대를 구하는 문제는

정말 많이 사용되는 문제이며

 

 

면접 테스트에 많이 나오는

기본 문제 중 하나이다.

 

 

이해해 보고 외우자!

 

728x90

+ Recent posts