[코딩테스트] 기본 함수

JUJU·2024년 8월 27일

코딩테스트

목록 보기
1/3

파이썬을 활용한 코딩 테스트 준비를 위해 알아두면 유용한 내장 함수들을 정리해보았다.

✏️ 입력 처리

■ input()

사용자가 콘솔에 입력한 값을 문자열로 받아온다

user_input = input("숫자를 입력하세요: ")
print(f"입력된 값: {user_input}")

■ map(int, input().split())

여러 개의 값을 한 번에 입력받아 정수로 변환한다.

input().split()을 통해 공백을 기준으로 문자열을 분리한 후, map(int, ...)을 사용해 각 문자열을 정수로 변환한다.

numbers = map(int, input("숫자들을 입력하세요: ").split())
print(f"입력된 숫자 리스트: {list(numbers)}")

■ list(map(int, input().split()))

여러 개의 값을 한 번에 입력받아 정수로 변환한 뒤, 리스트 형태로 반환한다.

numbers = list(map(int, input("숫자들을 입력하세요: ").split()))
print(f"리스트로 변환된 입력값: {numbers}")



✏️ 출력 처리

■ format() 함수와 f 문자열

문자열에 변수값을 삽입한다.

name = "Alice"
age = 30
print("이름: {}, 나이: {}".format(name, age))

그러나 파이썬 3.6 이후부터는 f 문자열 포매팅이 더 자주 사용된다.
이는 변수를 {}로 감싸서 간결하게 표현할 수 있다.

name = "Alice"
age = 30
print(f"이름: {name}, 나이: {age}")

■ Asterisk (*)의 활용

파이썬에서 Asterisk (*)는 다양한 용도로 사용된다.

그중에서도 언패킹(Unpacking) 기능이 유용하다. 예를 들어 리스트나 튜플의 요소를 개별적으로 분리해 출력할 때 사용된다.

data = [1, 2, 3, 4, 5]
print(*data)

이 코드는 1 2 3 4 5처럼 공백을 두고 출력한다.

만약 언패킹된 결과를 여러 줄에 걸쳐 출력하고 싶다면, sep 옵션을 사용하면 된다.

data = [1, 2, 3]
print(*data, sep='\n')

>>> 1
	2
	3



✏️ 문자열 관련 함수

■ upper()

문자열의 모든 문자를 대문자로 변환

text = "hello"
print(text.upper())  # 출력: "HELLO"

■ lower()

문자열의 모든 문자를 소문자로 변환

text = "HELLO"
print(text.lower())  # 출력: "hello"

■ swapcase()

문자열의 대소문자를 서로 반전

text = "Hello World"
print(text.swapcase())  # 출력: "hELLO wORLD"

■ join()

join() 함수는 리스트나 튜플과 같은 이터러블 객체의 요소들을 하나의 문자열로 결합

words = ["Hello", "world", "Python"]
result = " ".join(words)
print(result)  # 출력: "Hello world Python"

이 함수는 리스트의 각 요소를 특정 구분자(예: 공백, 쉼표 등)로 연결하여 하나의 문자열로 만들어줍니다.




✏️ 리스트 관련 함수

■ .sort() 와 sorted()

sort()sorted()는 파이썬에서 리스트를 정렬하는 데 사용되는 두 가지 함수이다.
두 함수 모두 원소를 정렬할 수 있지만, 그 방식과 반환값이 다르다.

.sort()

.sort()리스트 객체의 메서드로, 해당 리스트를 제자리(in-place)에서 정렬한다. 즉, 원래의 리스트가 정렬된 상태로 변경되며, 새로운 리스트를 반환하지 않는다.

  • 리스트를 오름차순으로 정렬하는 것이 기본 동작
  • 원본 리스트의 순서가 변경된다.
numbers = [3, 1, 4, 1, 5, 9]
numbers.sort()
print(numbers)  # 출력: [1, 1, 3, 4, 5, 9]
# 위 예시에서 sort() 메서드는 numbers 리스트 자체를 정렬하여 수정한다.

sorted()

sorted()내장 함수로, 리스트를 정렬한 새로운 리스트를 반환한다.

  • 원본 리스트는 변경되지 않으며, 정렬된 리스트를 필요로 하는 경우에 유용하다.
  • 리스트뿐만 아니라 튜플, 문자열 등 다른 이터러블(iterable) 객체에도 사용할 수 있다.
numbers = [3, 1, 4, 1, 5, 9]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # 출력: [1, 1, 3, 4, 5, 9]
print(numbers)  # 출력: [3, 1, 4, 1, 5, 9] (원본 리스트는 그대로)
# 위 예시에서 sorted() 함수는 numbers 리스트를 정렬하여 새로운 리스트 sorted_numbers를 반환하지만, 
원본 numbers 리스트는 그대로 유지된다.

key 매개변수

sort()와 sorted() 함수 모두에서 key 매개변수는 정렬 기준을 지정하는 데 사용된다.
key 매개변수에 함수나 람다 함수를 전달하여 정렬 기준을 커스터마이징할 수 있다.

예를 들어, 마지막 글자에 따라 정렬하려면 다음과 같이 사용할 수 있다:

words = ["banana", "apple", "cherry", "date"]
sorted_words = sorted(words, key=lambda x: x[-1])
print(sorted_words)  # 출력: ['banana', 'applex', 'date', 'cherry']

위 예시에서는 람다 함수 lambda x: x[-1]가 각 문자열의 마지막 글자를 반환하며, sorted() 함수는 이 값을 기준으로 정렬된 새로운 리스트를 반환한다.


■ .reverse() 와 reversed()

.reverse()reversed()는 파이썬에서 리스트의 요소를 반대로 정렬하거나 뒤집는 데 사용되는 두 가지 함수이다.
두 기능 모두 리스트의 순서를 반대로 바꿀 수 있지만, 그 방식과 반환값이 다르다.

.reverse()

.reverse()리스트 객체의 메서드로, 해당 리스트를 제자리(in-place)에서 역순으로 변경한다.
즉, 원래의 리스트가 역순으로 변경되며, 새로운 리스트를 반환하지 않는다.

numbers = [3, 1, 4, 1, 5, 9]
numbers.reverse()
print(numbers)  # 출력: [9, 5, 1, 4, 1, 3]
# 위 예시에서 reverse() 메서드는 numbers 리스트 자체를 역순으로 수정합니다.

[::-1] 슬라이싱

[::-1] 슬라이싱은 리스트, 문자열, 또는 다른 시퀀스의 모든 요소를 역순으로 반환한다.
이 방법은 새로운 시퀀스를 생성하므로 원본 시퀀스는 변경되지 않는다.

numbers = [3, 1, 4, 1, 5, 9]
reversed_numbers = numbers[::-1]
print(reversed_numbers)  # 출력: [9, 5, 1, 4, 1, 3]
print(numbers)  # 출력: [3, 1, 4, 1, 5, 9] (원본 리스트는 그대로)
# [::-1] 슬라이싱을 통해 numbers 리스트를 역순으로 뒤집은 새로운 리스트를 생성합니다.

reversed()

reversed()내장 함수로, 리스트를 포함한 모든 이터러블(iterable) 객체를 역순으로 뒤집어 새로운 이터레이터(iterator)를 반환한다.

원본 이터러블 객체는 변경되지 않으며, 역순으로 뒤집어진 새로운 이터레이터를 생성한다.

numbers = [3, 1, 4, 1, 5, 9]
reversed_numbers = reversed(numbers)
print(list(reversed_numbers))  # 출력: [9, 5, 1, 4, 1, 3]
print(numbers)  # 출력: [3, 1, 4, 1, 5, 9] (원본 리스트는 그대로)
# 위 예시에서 reversed() 함수는 numbers 리스트를 역순으로 뒤집은 새로운 이터레이터를 반환하지만,
# 원본 numbers 리스트는 그대로 유지됩니다.



✏️ 그 외

■ zip()

zip 함수는 파이썬에서 여러 이터러블(iterable) 객체를 병렬로 순회하면서 그 요소들을 하나씩 짝지어 튜플 형태로 묶어주는 함수다.

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']

zipped = zip(list1, list2)
print(list(zipped))  # 출력: [(1, 'a'), (2, 'b'), (3, 'c')]

profile
백엔드 개발자

0개의 댓글