코딩공부/파이썬(Python)

문제.random 모듈 활용 문제

diary100 2023. 3. 23. 15:39

오늘은 일전의 KDT 수업과정에서 나온 과제를 포스팅 하려한다. 

각각의 문제 조건과 풀이 코드를 첨부하겠다. 

 

문제 1. 주사위 프로그램 만들기

 

●조건

주사윗 값을 플레이어가 맞추는 게임이다. 게임을 할때 마다 주사윗값은 바뀐다.

풀이코드

 

 

이 문제는 while 무한루프와 break 를 활용하여 코드를 짜보았다.

 

 

2. 가위바위보 게임 만들기

●조건

위 주사위 게임과 유사하게 이길때 까지 가위바위보 게임을 하게 설계하였다.

이 문제는 random 모듈의 choice 의 활용과 while 과 break 그 사이 if 문을 첨가하여 풀이해 보았다.

 

 

3. 로또 번호 예상 프로그램 만들기

●조건

  ●1~45 까지 6개의 숫자를 무작위로 추출

  ●중복되면 안됨

  ●오름차순으로 정렬

  ●보너스 숫자는 없음

 

이 풀이는 random 모듈의 randrage를 사용하여 첫번째 조건인 범위의 숫자를 뽑아주었다.

그이후 set를 활용하여 중복을 제거해 주었고, sort 함수를 활용하여 오름차순으로 정렬하여 주었다.

sort 을 활용 할때 if len 조건을 걸어줌으로써 중복은 게속 제거되고 6개의 요소가 찰때 까지 while 루프를 돌게 해주었다.

 

 

 

4. 주민등록번호 유효성 검사 프로그램

 

●조건

  • 001011-3068518
  • 0 0 1 0 1 1 3 0 6 8 5 1 8 (마지막 자리는 잠시 빼둠)
  • 2 3 4 5 6 7 8 9 2 3 4 5 (숫자를 각자리의 곱함)
  • 0 0 4 0 6 7 24 0 12 24 20 5 (숫자를 모두 더함)
  • 102 % 11 (11로 나눈 나머지 값을 구함) -> 3
  • 11 - 3 (해당 값을 11에서 뺌) -> 단 값이 2자리 인 경우 10으로 나눈 나머지 값을 구함
  • 8 (주민등록번호의 마지막 자리와 일치하면 맞는 주민번호임)

 

이 풀이는 인덱싱과 슬라이싱을 사용하여 각각 번호에 대한 연산을 주었고 그 이후 if 문을 사용해주어 조건을 맞추었다.

언뜻보면 조건이 복잡하지만 순수 연산이 많았고 순서와 변수에 유의하여 푼다면 어려운 문제는 아니다.