250x250
반응형
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

재 현

파이썬을 파이썬답게 본문

Coding test

파이썬을 파이썬답게

본명은이점례 2020. 11. 20. 15:59
728x90

 


파트 2. 정수 다루기

 

 

# 몫과 나머지

a = 7

b = 5

print( *divmod(a, b) )

 

 

# n진법

num = '3212'

base = 5

answer = int(num, base)


파트3. Str 다루기

 

 

# 문자열 정렬

s = '가나다라'

n = 7

s.ljust(n) # 좌측 정렬

s.center(n) # 가운데 정렬

s.rjust(n) # 우측 정렬

 

 

#알파벳 출력하기

import string

 

string.ascii_lowercase # 소문자 abcdefghijklmnopqrstuvwxyz

string.ascii_uppercase # 대문자 ABCDEFGHIJKLMNOPQRSTUVWXYZ

string.ascii_letters #대소문자 모두 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

string.digits # 숫자 0123456789

 


파트4. Iterable 다루기

*Iterable이란? 자신의 멤버를 한번에 리턴할 수 있는 객체입니다. ex) list, str, tuple, dictionary 등

 

 

 

# 원본을 유지한채, 정렬된 리스트 구하기 - sorted

list1 = [3, 2, 1]

list2 = sorted(list1)

 

 

# 2차원 리스트 뒤집기 - zip

mylist = [ [1,2,3], [4,5,6], [7,8,9] ]

new_list = list(map(list, zip(*mylist))) // [[1,4,9],[2,5,8],[3,6,9]]

 

mylist = [ 1,2,3 ]

new_list = [ 40, 50, 60 ]

for i in zip(mylist, new_list):

      print (i)

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

 

사용 예 #1 - 여러 개의 Iterable 동시에 순회할 때 사용

사용 예 #2 - Key 리스트와 Value 리스트로 딕셔너리 생성하기

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

animals = ['cat', 'dog', 'lion']

sounds = ['meow', 'woof', 'roar']

answer = dict(zip(animals, sounds)) # {'cat': 'meow', 'dog': 'woof', 'lion': 'roar'}

 

 

 

# 모든 멤버의 type 변환하기 - map

1. type변환

2. map으로 입력받기 ex) a,b = map(int,input().split())

3. 일반함수 매핑 ex) for name in map(func, users): print(name)

4. 람다함수 매핑 ex) list(map(lambda x:len(x),mylist))

 

파이썬의 map을 사용하면 for 문을 사용하지 않고도 멤버의 타입을 일괄 변환할 수 있습니다.

*map함수의 결과타입은 map object이므로 타입을 바꿔서 사용하자

 

list1 = ['1', '100', '33']

list2 = list(map(int, list1))

 

answer = list(map(lambda x:len(x),mylist))

[[1], [2]] [1,1]
[[1, 2], [3, 4], [5]] [2,2,1]

 


파트5. Sequence Types 다루기

* Sequence Type이란? int 타입 인덱스를 통해, 원소를 접근할 수 있는 iterable 입니다. ex) list, str, tuple

 

 

# sequence 멤버를 하나로 이어붙이기 - join

 

알고리즘 문제를 풀다보면, 시퀀스의 멤버들을 하나의 string으로 이어붙여야 할 때가 있습니다

ex ) 문자열 배열 ['1', '100', '33']을 이어 붙여 문자열 '110033' 만들기

 

my_list = ['1', '100', '33'] answer = ''.join(my_list)

 

 

# 삼각형 별찍기 - sequence type의 * 연산 

 

이번 강의에서는 곱셈 연산 *를 통해 문자열을 반복하는 방법을 배웁니다.

예시)

  • 'abc', 'abcabc', 'abcabcabc', 'abcabcabcabc ...' 과 같이 'abc'가 n번 반복되는 문자열 만들기
  • [123, 456, 123, 456, 123 ...] 과같이 123, 456이 n번 반복되는 리스트 만들기

n = 어쩌고

answer= [123, 456]*n

 

 


파트 7. 기타

 

 

# for 문과 if문을 한번에 - List comprehension의 if 문

mylist = [3, 2, 6, 7]

answer = [ i**2 for i in mylist if i %2 == 0]

 

 

 

728x90

'Coding test' 카테고리의 다른 글

행렬의 덧셈  (0) 2020.11.24
정수 제곱근  (0) 2020.11.24
3진법 뒤집기  (0) 2020.11.17
10912. 외로운 문자  (0) 2020.11.17
K번째 수  (0) 2020.11.16