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의 변수로
담아주고 출력하면 된다.
최대를 구하는 문제는
정말 많이 사용되는 문제이며
면접 테스트에 많이 나오는
기본 문제 중 하나이다.
이해해 보고 외우자!
'프로그래밍 > Python' 카테고리의 다른 글
기초) list comprehension / 문제 풀기 (0) | 2020.05.27 |
---|---|
기초) 리스트와 딕셔너리에 적용하는 함수 (0) | 2020.05.27 |
기초) break / continue 키워드 (0) | 2020.05.26 |
기초) while 반복문 (0) | 2020.05.25 |
기초) range 와 반복문 (0) | 2020.05.25 |