문제 설명 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요. 제한사항 0 ≤ numbers의 원소 ≤ 1,000 1 ≤ numbers의 길이 ≤ 100 정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다. 입출력 예numbersresult [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 5.5 [89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] 94.0 입출력 예 설명 입출력 예 #1 numbers의 원소들의 평균 값은 5.5입니다. 입출력 예 #2 numbers의 원소들의 평균 값은 94.0입니다. 배열의 값들이 정수일때, 이 정수들의 평균을 구하는 문제이다. 실제 ..
문제 설명 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 15 babbling의 원소에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다. 문자열은 알파벳 소문자로만 이루어져 있습니다. 입출력 예babblingresult ["aya", "yee", "u", "maa", "wyeoo"] 1..
오늘은 프로그래머스의 '완주하지 못한 선수' 문제를 풀면서 알게된 정렬 함수 list.sort()와 sort(list)의 차이에 대해 알아보겠습니다. def solution(participant, completion): participant.sort() completion.sort() for i in range(len(participant)): try: if participant[i] != completion[i]: return participant[i] except: return participant[i] 위코드와 아래 코드는 어떤 차이가 있을까요? def solution(participant, completion): participant = participant.sort() completion = c..
2차원 리스트 뒤집기 - ⭐️zip⭐️ zip 함수를 이용해 2차원 배열을 뒤집는 방법을 알아봅시다. 다른 언어에서는..(또는 이 기능을 모르시는 분은) 보통은 다음과 같이 2중 for 문을 이용해 리스트의 row와 column을 뒤집습니다. mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] new_list = [[], [], []] for i in range(len(mylist)): for j in range(len(mylist[i])): new_list[i].append(mylist[j][i]) 하지만, 파이썬의 zip과 unpacking 을 이용하면 코드 한 줄로 리스트를 뒤집을 수 있습니다. mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] n..
원본을 유지한채, 정렬된 리스트 구하기 - sorted 파이썬의 sort() 함수를 사용하면 리스트의 원소를 정렬할 수 있습니다. 이때, sort 함수는 원본의 멤버 순서를 변경하지요. 따라서 원본의 순서는 변경하지 않고, 정렬된 값을 구하려면 sort 함수를 사용할 수 없습니다. 이런 경우는 어떻게 해야 할까요? 다른 언어에서는..(또는 이 기능을 모르시는 분은) 보통 사람들은 deep copy와 sort 함수를 이용합니다. list1 = [3, 2, 5, 1] list2 = [i for i in list1] # 또는 copy.deepcopy를 사용 list2.sort() 파이썬의 sorted를 사용해보세요. 반복문이나, deepcopy 함수를 사용하지 않아도 새로운 정렬된 리스트를 구할 수 있습니다...
알파벳 출력하기 - string 모듈 이번 강의에서는 모든 대문자를 또는 모든 소문자를 또는 모든 대소문자를 또는 숫자를 가져오는 방법을 배웁니다. 다른 언어에서는..(또는 이 기능을 모르시는 분은) 보통 사람들은 a부터 z까지의 소문자를 가져오려고 할 때, 'abcdefg ....'와 같이 손수 알파벳을 입력하곤 합니다. answer = 'abcdefghijk (편의상 생략)' 파이썬은 이런 데이터를 상수(constants)로 정의해놓았습니다. import string string.ascii_lowercase # 소문자 abcdefghijklmnopqrstuvwxyz string.ascii_uppercase # 대문자 ABCDEFGHIJKLMNOPQRSTUVWXYZ string.ascii_letters..
문자열 정렬하기 - ljust, center, rjust 예시) '가나다라 ' # 좌측정렬 ' 가나다라' # 우측 정렬 ' 가나다라 ' # 가운데 정렬 다른 언어에서는..(또는 이 기능을 모르시는 분은) 보통 사람들은 for 문을 이용해 기존 스트링에 공백문자 (' ') 를 여러 번 붙이는 번거로운 일을 하지요. 이렇게요! ### 우측 정렬 예 s = '가나다라' n = 7 answer = '' for i in range(n-len(s)): # 문자열의 앞을 빈 문자열로 채우는 for 문 answer += ' ' answer += s 파이썬에서는 ljust, center, rjust와 같은 string의 메소드를 사용해 코드를 획기적으로 줄일 수 있습니다. s = '가나다라' n = 7 s.ljust(n..
n진법으로 표기된 string을 10진법 숫자로 변환하기 - int 함수 진법 변환 문제는 알고리즘 문제나 숙제로 자주 나오는 유형이지요. 이번 시간에는 n 진법으로 표기된 문자열을 10진법 숫자로 변환하는 방법을 배워봅시다. 예시) 5진법으로 적힌 문자열 '3212'를 10진법으로 바꾸기 다른 언어에서는..(또는 이 기능을 모르시는 분은) 보통 사람들은 for 문을 이용해 숫자를 곱해가며 문제를 풉니다. num = '3212' base = 5 answer = 0 for idx, number in enumerate(num[::-1]): answer += int(number) * (base ** idx) 파이썬의 int(x, base=10) 함수는 진법 변환을 지원합니다. 이 기본적인 함수를 잘 쓰면 코드..
알고리즘 문제를 풀다 보면, 정수를 나눈 몫과 나머지를 구해야 할 때가 있습니다. 예시) 7을 3으로 나눈 몫과 나머지를 구해야 하는 경우 다른 언어에서는..(또는 이 기능을 모르시는 분은) 보통 사람들은 나머지와 몫을 따로 구합니다 a = 7 b = 5 print(a//b, a%b) 파이썬에서는 파이썬의 divmod와 unpacking(*)을 이용하면 다음과 같이 코드를 짤 수 있습니다. a = 7 b = 5 print(*divmod(a, b)) divemode(a,b) => a를 b로 나눈 목과 나머지를 tuple로 return ⨳ divmod를 사용할 때 주의할 점 무조건 divmod를 사용하는 게 좋은 방법은 아닙니다.가독성이나, 팀의 코드 스타일에 따라서, a//b, a%b와 같이 쓸 때가 더 ..