프로그래밍/Python 85

프로그래머스_python lv0. 배열의 평균값

https://school.programmers.co.kr/learn/courses/30/lessons/120817 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답안 : 1 2 3 4 5 6 def solution(numbers): answer = 0 for n in numbers: #numbers 배열 원소 모두 더하기 answer += n return answer/len(numbers) # 배열 원소 총합을 배열 길이로 cs 배열에 대해 for문을 사용하는 방법만 알고 있다면 쉽게 풀리는 문제였다. 개선안 : 1 2 def solution(num..

프로그래머스_python lv0. 피자 나눠 먹기(3)

https://school.programmers.co.kr/learn/courses/30/lessons/120816 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답안 : 1 2 def solution(slice, n): return (n - 1) // slice + 1 cs 피자 나눠먹기(1)과 굉장히 유사하고 조각 수가 정해져있지 않고 매개변수로 주어진다는 점만 다르기 때문에 쉽게 풀었다. 인원 수에서 1명을 뺀 값을 조각 수로 나누고, 앞에서 뺀 한명이 한조각을 보장받으려면 한 판이 더 필요하므로 마지막에 1을 더해준다. 이게 이 문제를 푸는 데..

프로그래머스_python lv0. 피자 나눠 먹기(2)

https://school.programmers.co.kr/learn/courses/30/lessons/120815 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답안 : 1 2 3 4 5 6 import math # gcd 사용 위해 import def solution(n): # n과 6의 최소공배수 = 조건 만족 위해 필요한 최소의 피자 조각 수 answer = (n * 6) // math.gcd(n,6) return answer//6 # 피자 조각 수를 구했으므로 6으로 나누어 판 수 구하기 cs math.lcm으로 바로 최소공배수를 구하려고 했..

프로그래머스_python lv0. 피자 나눠 먹기(1)

https://school.programmers.co.kr/learn/courses/30/lessons/120814 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답안 : 1 2 3 def solution(n): answer = [i for i in range(1,16) if (7*i)//n >= 1] return min(answer) Colored by Color Scripter cs n이 최대값인 100일때 팔요한 피자는 15판이므로, 1판~16판 사이에서 7*판수를 인원으로 나눈 몫이 1보다 크거나 같아야 인당 1조각이 보장되기 때문에, if 조..

프로그래머스_python lv0. 짝수는 싫어요

https://school.programmers.co.kr/learn/courses/30/lessons/120813 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답안 : 1 2 3 def solution(n): answer = [i for i in range(n+1) if i % 2 == 1] return answer Colored by Color Scripter cs range를 이용한 for문과 if문을 사용해서 리스트 만드는 방법을 터득했다. 개선안 : 1 2 def solution(n): return [i for i in range(1, n+..

프로그래머스_python lv0. 최빈값 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/120812 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답안 : 결국 못풀었다 개선 답안 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 def solution(array): #count 딕셔너리 생성해서 횟수 세기 count = {} # count dictionary 선언 for num in array: # 입력받은 array의 모든 원소를 반복 if num not in count: # array원소가 ..

프로그래머스_python lv0. 중앙값 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/120811 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답안 : 1 2 3 4 def solution(array): array.sort() midIdx = len(array)//2 return array[midIdx] cs 결국 못풀고 다른 사람의 코드를 참고해서 풀었다. 파이썬 내장함수에 익숙하지 않아 c나 java처럼 복잡하게 고민했는데, sort 라는 list함수가 오름차순/내림차순 정렬해준다. 개선안 : 1 2 def solution(ar..

프로그래머스_python lv0. 나머지 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/120810 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답 : 1 2 def solution(num1, num2): return num1%num2 cs 개선안 : 1 2 def solution(num1, num2): return divmod(num1, num2)[1] cs divmod 함수를 사용할 수 있다. divmod 결과 (몫, 나머지) 이므로 나머지 가리키는 인덱스1 값 리턴 파이썬 divmod( ) 와 %, // 차이 - obinstor..

파이썬 divmod( ) 와 %, // 차이

divmod( ) 두 개의 숫자를 인자로 받아, 나눠지는 수를 나누는 수로 나눈 몫과 나머지를 튜플 형식으로 반환하는 함수 >> divmod(num1, num2) ( num1//num2, num1%num2 ) divmod( ) 와 %, // 차이는? divmod( )보다 %, // 연산 수행 시 더 많은 Opcode(명령코드) 실행 => 인자값의 크기가 그렇게 크지 않은 경우 %, // 연산이 더 빠르지만, 인자값의 크기가 매우 커지면 divmod( ) 연산이 더 빠르다. 내용 참고 : https://stackoverflow.com/questions/30079879/is-divmod-faster-than-using-the-and-operators Is divmod() faster than using th..