
숫자로 사각형 만들기 (파이썬)
2022. 7. 30. 14:06
실습 문제
문제 사각형의 높이 H와 너비 W가 주어지면 H행 W열의 사각형 모양으로 1부터 H*W까지 숫자를 차례대로 출력 하시오. 숫자가 출력되는 순서는 첫줄의 왼쪽에서 오른쪽으로 1부터 차례대로 너비 W 만큼 출력한 후 다음 줄로 바꾸어서 다시 왼쪽에서 오른쪽으로 1씩 증가하면서 출력하는 방법으로 H번 줄까지 반복한다. 풀이 n = int(input()) for i in range(1, n+1): k = list(map(int, input().split())) q = k[1] w = k[0] * k[1] # 6 print(f'#{i}') print('1 ', end='') for j in range(2, k[0]*k[1]+1): if 1 < ((10 + j) % 10) < k[1]+1: print(f'{j} '..

카 쉐어링 요금 계산 (파이썬)
2022. 7. 29. 23:17
실습 문제
문제 카쉐어링 서비스는 요금을 다음과 같이 계산한다. A. 대여는 10분 단위로 가능하다. B. 대여 요금 : 10분당 1,200원 C. 보험료 : 30분당 525원 (50분을 빌리면, 1시간으로 계산) D. 주행 요금 : km당 170원 (주행 요금은 100km가 넘어가면, 넘어간 부분에 대하여 할인이 50% 적용) 예) 160km를 달렸으면, 170*100 + 85*60 양의 정수인 대여시간(분)과 주행거리를 받아 계산 결과를 반환하는 함수 fee()를 작성하시오. 참고 함수 math.ceil - 예시 fee(600, 50) #=> 91000 fee(600, 110) #=> 10 풀이 def fee(a, b): rlqhs = 0 # 기본료 변수 설정 if a % 10 > 0: # 기본료는 10분 단위..

두 명씩 짝을 지어보자 클래스사용 (파이썬)
2022. 7. 28. 20:49
실습 문제
문제 페어 프로그래밍은 하나의 컴퓨터에서 두 사람의 프로그래머가 작업하는 방식을 의미한다. 진정한 프로그래머가 되기 위해 김해피는 페어를 매칭하기 위한 프로그램을 작성하려고 한다. 클래스를 활용해 작성하며 포함되는 메서드는 아래와 같다. 구성 요소 1. 초기화 메서드는 인자로 학생 이름으로 구성된 리스트를 받아서 인스턴스 변수에 할당한다. 2. pick(n) 메서드는 학생들 명단에서 인자 n명 만큼 랜덤으로 추출하여 return한다. 3. match_pair() 메서드는 학생들 명단을 랜덤으로 2명씩 매칭해 준다. 이때, 학생들 명단의 수가 홀수명이면 단 한팀만 3명으로 구성한다 풀이 import random class Pair: result = [] def __init__(self, lst): self..

콜라츠 추측(Collatz conjecture) 변형 (파이썬)
2022. 7. 27. 21:05
실습 문제
문제 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측이다. 그 원리는 아래와 같다. 원리 입력된 수가 짝수라면 2로 나눈다. 입력된 수가 홀수라면 3을 곱하고 1을 더한다. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복한다. 예를 들어, 입력된 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 된다. 위 작업을 몇 번이나 반복해야하는지 반환하는 함수 collatz()를 작성하시오 (단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환하시오.) 풀이 def collatz(n): e = 500 # 500번 이상 순회하면 안되기 때문에 50..
무엇이 중복일까 ? (파이썬)
2022. 7. 26. 21:58
실습 문제
문제 문자열을 전달받아 해당 문자열에서 중복해서 나타난 문자들을 담은 list를 반환하는 duplicated_letters 함수를 작성하시오. 생각해보기 1. 문자열을 두 번 순회해서 첫 단어와 다음 단어를 비교.... 2. 문자가 같지 않다면 그 두 요소 중 하나의 요소를 새로운 리스트에 넣으면 될 것 같다..? ..... 3. 일단해보기.. 풀이 def duplicated_letters(s): a = 0 letters_list = [] # 중복 되는 단어들을 담아줄 리스트 생성 for i in s: # 리스트를 순회 a += 1 # 다음 요소와 비교하기 위한 인덱스를 하나씩 넣어줌 for j in s[a:]: # 순회하는 리스트 요소의 다음값을 순회하는 반복문 생성 if i == j: letters_..

같은 혈액형의 사람 수를 구하라(파이썬)
2022. 7. 25. 18:16
실습 문제
같은 혈액형의 사람 수를 구하라 문제 여러 사람의 혈액형(A, B, AB, O)에 대한 정보가 담긴 list가 있다. 이를 이용하여 key는 혈액형의 종류, value는 사람 수인 dictionary를 만드시오. blood_types = [ 'A','A','O', 'B', 'A', 'O', 'AB','O', 'A', 'B', 'O', 'B', 'AB'] 풀이는 아래~~ 생각 해보기 1. 딕셔너리를 만들어야 한다. 2. key값을 혈액형으로 만든다. 3. value는 리스트의 같은 값을 가지는 문자열의 수 4. for문을 돌려 딕셔너리에 추가하면 대충 나올 것 같다.... 풀이 blood_types = [ 'A','A','O', 'B', 'A', 'O', 'AB','O', 'A', 'B', 'O', 'B'..