Coding test/Python 기초문제
[while 반복문] 소인수 분해
🔍 문제 - 입력 받은 수를 반복문을 통해 소인수 분해 🖥 실행 inputNum = int(input("수 입력: ")) n = 2 searchNum = [] while n
[for 반복문] 최소 공배수 구하기
🔍 문제 -어느 음식점의 식료품 배달 주기가 각각 다를 때, 3 가지 물품이 동시에 들어오는 날짜를 계산 과일 = 3일 주기, 생선 = 4일 주기, 야채 = 5일 주기 🖥 실행 fruit = 3 fish = 4 vege = 5 maxNum = 0 for i in range(1, fruit+1): if fruit % i ==0 and fish % i == 0: print('공약수는 {}'.format(i)) maxNum = i print('최대공약수는 {}'.format(maxNum)) minNum = (fruit*fish)//maxNum newNum = minNum for i in range(1, newNum+1): if newNum % i == 0 and vege % i ==0: maxNum = i ..
[while 반복문] 공약수, 최대 공약수 구하기
🔍 문제 반복문을 이용하여 공약수, 최대 공약수 구하기 🖥 실행 num1 = int(input('0보다 큰 수 입력:')) num2 = int(input('0보다 큰 수 입력:')) temp1 = num1 temp2 = num2 while temp2 > 0: temp = temp2 temp2 = temp1 % temp2 temp1 = temp print('{}와 {}의 최대공약수 : {}'.format(num1,num2,temp1)) for i in range(1, temp1+1): if temp1 % i == 0: print('{}와 {}의 공약수: {}'.format(num1,num2,i)) 📝 결과물 0보다 큰 수 입력:27 0보다 큰 수 입력:90 27와 90의 최대공약수 : 9 27와 90의 공..
[while 반복문] 군 수열
🔍 문제 - 반복문을 통해 군 수열을 만들고, n 번째 항의 값을 출력 🖥 실행 inputN = int(input('n항 입력: ')) flag = True n =1; nCnt = 1; searchN = 0 while flag: for i in range(1,n+1): if i == n: #끝에 ','의 유무 print('{} '.format(i), end='') else: print('{}, '.format(i), end='') nCnt += 1 if nCnt > inputN: searchN = i flag = False break print() n +=1 print('{}항: {}'.format(inputN,searchN)) 📝 결과물 n항 입력: 15 1 1, 2 1, 2, 3 1, 2, 3, 4 ..
[while 반복문] 계차수열
🔍 문제 계차 수열을 반복문을 통해 구현 🖥 실행 inputAN1 = int(input('a1:')) inputN = int(input('n번째:')) inputBN1 = int(input('b1:')) inputBD = int(input('Bd:')) valueAn = 0 valueBn = 0 n = 1 while n
[while 반복문] 피보나치 수열
🔍 문제 피보나치 수열을 반복문을 통해 구현 🖥 실행 inputN = int(input('n 입력: ')) valueN = 0 sumN = 0 valueN1 = 0 valueN2 = 0 n= 1 while n
[정렬] 1부터 100사이 난수 정렬(퀵 정렬)
🔍 문제 1부터 100사이의 난수 10개를 오름차순, 내림차순으로 정렬(퀵 정렬 사용) 🖥 실행 1) 모듈 def qSort(arr, asc=True): if len(arr) < 2: return arr midIdx = len(arr)//2 midVal = arr[midIdx] smallArr = []; sameArr = []; bigArr = [] for n in arr: if n < midVal: smallArr.append(n) elif n == midVal: sameArr.append(n) else: bigArr.append(n) if asc: return qSort(smallArr, asc=asc) + sameArr + qSort(bigArr, asc=asc) else: return qSort(..
[정렬] 1부터 100사이 난수 정렬(병합 정렬)
🔍 문제 1~100사이 난수 10개를 병합정렬을 사용하여 정렬하기 🖥 실행 1) 모듈 def mSort(arr, asc=True): if len(arr) < 2: return arr midIdx = len(arr) // 2 leftArr = mSort(arr[:midIdx], asc=asc) rightArr = mSort(arr[midIdx:], asc=asc) mergeArr = [] leftIdx = 0; rightIdx = 0 while leftIdx < len(leftArr) and rightIdx < len(rightArr): if asc == True: if leftArr[leftIdx] < rightArr[rightIdx]: mergeArr.append(leftArr[leftIdx]) lef..