Python 문법정리_10진법, 문자열 정렬함수, 2차원 리스트 뒤집기

hjseo-dev·2021년 5월 18일
0

Python 문법정리

목록 보기
1/4
post-thumbnail

프로그래머스의 "파이썬을 파이썬답게" 강의를 보고 정리하였습니다. 제가 푼 문제들의 풀이와 설명을 정리할 예정입니다.

1. 주어진 숫자를 10진법으로 표현하기

base 진법으로 표기된 숫자를 10진법 숫자 출력

  • 입력

    텍스트 입력으로는 공백으로 구분된 숫자가 두 개 주어집니다.
    첫 번째 숫자는 num을 나타내며, 두 번째 숫자는 base를 나타냅니다.

  • 출력

    base 진법으로 표기된 num을 10진법 숫자로 출력하기

  • 제한 조건

    base는 10 이하인 자연수입니다.
    num은 3000 이하인 자연수입니다.

  • 예시
    input output
    12 3 5
    444 5 124

정답

num, base = map(int, input().strip().split(' '))
answer = int(str(num), int(base))
print(answer)
  • 10진법 함수 : int(x, int(base)) // x는 문자열

2. 문자열 정렬하기 (정렬함수 사용)

  • 설명

    문자열 s와 자연수 n이 입력으로 주어집니다. 문자열 s를 좌측 / 가운데 / 우측 정렬한 길이 n인 문자열을 한 줄씩 프린트해보세요.

  • 제한조건

    s의 길이는 n보다 작습니다.
    (n - s의 길이)는 짝수입니다.
    s는 알파벳과 숫자로만 이루어져 있으며, 공백 문자가 포함되어있지 않습니다.

정답

s, n = input().strip().split(' ')
n = int(n)
length = len(s)
if length < n and (n-length)%2 == 0:
    print(s.ljust(n))
    print(s.center(n))
    print(s.rjust(n))
  • 왼쪽정렬 : ljust(n)
  • 가운데정렬 : center(n)
  • 오른쪽정렬 : rjust(n)

3. 2차원 리스트 뒤집기

  • 문제 설명
    다음을 만족하는 함수, solution을 완성해주세요.

    solution 함수는 이차원 리스트, mylist를 인자로 받습니다
    solution 함수는 mylist 원소의 행과 열을 뒤집은 한 값을 리턴해야합니다.
    예를 들어 mylist [[1, 2, 3], [4, 5, 6], [7, 8, 9]]가 주어진 경우, solution 함수는 [[1, 4, 7], [2, 5, 8], [3, 6, 9]] 을 리턴하면 됩니다.

  • 제한 조건

    mylist의 원소의 길이는 모두 같습니다.
    mylist의 길이는 mylist[0]의 길이와 같습니다.
    각 리스트의 길이는 100 이하인 자연수입니다.

정답

def solution(mylist):
    answer = list(map(list, zip(*mylist)))
    return answer

파이썬의 zip과 unpacking 을 이용

  • zip함수
    zip(*iterables)는 각 iterables 의 요소들을 모으는 이터레이터를 만듭니다.
    튜플의 이터레이터를 돌려주는데, i 번째 튜플은 각 인자로 전달된 시퀀스나 이터러블의 i 번째 요소를 포함합니다.

예시 1)

mylist = [1, 2, 3]
new_list = [40, 50, 60]
for i in zip(mylist, new_list):
    print (i)

(1, 40)
(2, 50)
(3, 60)

예시 2) 파이썬의 zip 함수와 dict 생성자를 이용하면 코드 단 한 줄로, 두 리스트를 합쳐 딕셔너리로 만들 수 있습니다.

animals = ['cat', 'dog', 'lion']
sounds = ['meow', 'woof', 'roar']
answer = dict(zip(animals, sounds)) 

# {'cat': 'meow', 'dog': 'woof', 'lion': 'roar'}

0개의 댓글