본문 바로가기
Algorithm/알고리즘 공부노트

파이썬 - 알고리즘 Tips(8/23 업데이트)

by devraphy 2021. 8. 23.

- 본 포스팅은 알고리즘 문제를 풀면서 배우게 된 Tip을 정리한 포스팅입니다. 

- 일종의 오답노트이며, 최근순으로 정리됩니다. 


9. 함수의 매개변수 타입을 지정하는 방법

- 만약 어떤 함수를 작성할 때, 매개변수를 지정하고 싶다면 어떻게 할까?

- 아래의 예시 코드를 우선 살펴보자.

from typing import List

def bubble_sort(List[int]) -> List[int]:
   #함수내용작성

 

- 위의 코드는 다음과 같은 방식으로 구조를 갖는다. 

def 함수명(매개변수명: 자료형) -> 반환자료형:
  #함수내용작성부

- 매개변수 다음 콜론을 적는다. 

- 콜론 다음에 매개변수의 자료형을 적는다. 

- 화살표 기호 다음에 작성되는 자료형은 해당 매개변수를 return 할 때 적용할 자료형을 기입한다. 

 

- 중요한 것은 매개변수의 자료형을 지정할 때,

- 자료형에 따라서 외부 라이브러리를 import해야 할 수도 있다는 것이다.  

- 그러므로 미리미리 연습해서 어떤 자료형은 어떤 라이브러리를 가져와야 하는지 알아보자. 


8. sys.stdin.readline()을 input()처럼 사용하는 방법

from sys import stdin
input = stdin.readline

n = int(input())
result = list(map(int, input().split()))

- 위의 코드에서 핵심은 input = stdin.readline에서 괄호()를 붙이지 않는 것이다. 

- 자바스크립트에서 배웠던 개념인것 같은데, 괄호를 붙이면 당장 메소드를 호출하겠다는 의미이다.

- 메소드에 괄호를 붙이지 않는다면, 메소드 자체를 참조한다는 의미다. 

- 여기서는 input이라는 이름에 stdin.readline 이라는 메소드를 참조하는 것이다. 

- 그러므로 괄호를 붙이지 않는다. 

 

- sys.stdin.readline()을 사용하는 이유는 input()보다 빠르기 때문이다. 

- 특히나 loop를 통해서 연속적으로 입력을 받는 경우, 더욱 빠르다. 

 

[참고자료]

https://ichi.pro/ko/gwalhowa-gwanlyeondoen-5-gaji-paisseon-gaenyeom-125553555076917

 

괄호와 관련된 5 가지 파이썬 개념

Python에서는 거의 모든 프로젝트에서 괄호를 사용합니다. 괄호의 가장 기본적인 형태는 수학 및 부울 표현식의 우선 순위를 지정하는 것입니다. 그렇지 않으면 괄호를 사용하지 않으면 다르게

ichi.pro

 

https://velog.io/@banana/Python-%ED%95%A8%EC%88%98

 

[Python] 함수

입력값을 가지고 어떤 일을 수행한 다음에 그 결과물을 내어놓는 것

velog.io

 

https://codesample-factory.tistory.com/1438

 

파이썬 괄호없이 함수를 호출하는 목적 python

다음을 고려하세요: class objectTest(): def __init__(self,a): self.value = a def get_value(self): return self.value class execute(): def __init__(self): a = objectTest(1) b = objectTest(1) print(a ==..

codesample-factory.tistory.com


7. 숫자를 담는 리스트의 요소를 나열하는 방법 

a = [1, 2, 3]
result = "".join(map(str, a))
print(result) # 123 출력

result = "+".join(map(str,a))
print(result) # 1+2+3 출력

- join()을 사용하기 위해서는 문자를 담고있는 리스트 또는 iterable을 매개변수로 넣어야 한다. 

- 동일하게 구분자를 사용할 수 있다. 


6. 문자를 담은 리스트의 요소를 나열하는 방법 

a = ['a', 'b', 'c']
result = "".join(a)
print(result) # abc 출력

result = "+".join(a)
print(result) # a+b+c 출력

- join앞에 "" 사이에는 구분자를 넣을 수 있다.

- 위의 코드에서 ""은 아무런 공백도 없음을 의미한다. 


5. 백준 2908 - 상수

a) slice

- slice 기능을 이용한 문자열 역순 정렬

string = 'Hello, World!'
reversed_str = string[::-1] 
print(reversed_str) # !dlroW ,olleH 를 출력한다.

 

b) 문자열을 역순으로 정렬하는 다양한 방법 

https://codechacha.com/ko/python-reverse-string/

 

Python - 문자열 뒤집기, 문자열 거꾸로 출력

문자열을 뒤집는 방법을 소개합니다. 문자열을 뒤집는다는 의미는 다음과 같이 Original 문자열의 마지막에서 처음 순서로 출력한다는 의미입니다. slice를 이용하면 매우 쉽게 String을 뒤집을 수

codechacha.com

 

c) slice의 다양한 기능

https://dojang.io/mod/page/view.php?id=2208 

 

파이썬 코딩 도장: 11.4 슬라이스 사용하기

시퀀스 자료형은 슬라이스라는 기능을 자주 사용합니다. 슬라이스(slice)는 무엇인가의 일부를 잘라낸다는 뜻인데, 시퀀스 슬라이스도 말 그대로 시퀀스 객체의 일부를 잘라냅니다. 시퀀스객체[

dojang.io

 


4. 백준 1152 - 단어의 개수

a) strip()

- 문자열의 공백을 제거하는 메소드 

- strip에는 3가지 종류가 있다.

str = " Hello, World! "

# 1) lstrip() ==> 왼쪽부터 공백 제거 
print(str.lstrip()) # "Hello, World! " 오른쪽 공백이 그대로 출력 

# 2) rstrip() ==> 오른쪽부터 공백 제거 
print(str.rstrip()) # " Hello, World!" 왼쪽 공백이 그대로 출력 

# 3) strip() ==> 양쪽에서 공백 제거
print(str.strip()) # "Hello, World!" 양쪽 공백 모두 제거

 

[참고자료]

https://codechacha.com/ko/python-string-strip/

 

Python - String strip(), rstrip(), lstrip() 사용 방법 및 예제

Python에서 strip() 함수를 이용하면 문자열의 쓸모 없는 부분을 자를 수 있습니다. Python은 lstrip(), rstrip(), strip()을 제공합니다. Java 등의 다른 언어들도 strip()을 제공하며, 기능은 모두 비슷합니다.

codechacha.com

 


3. 백준 1157 - 단어공부 

a) set 자료형 이해하기 - 참고자료 

https://wikidocs.net/1015

 

02-6 집합 자료형

[TOC] ## 집합 자료형은 어떻게 만들까? 집합(set)은 파이썬 2.3부터 지원하기 시작한 자료형으로, 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다. ...

wikidocs.net


2. 백준 10809 - 알파벳 찾기 

a) string.find(param)

- 문자열에서 어떤 문자의 index를 반환하는 메소드 

# 1) 특정 문자의 index값 찾기 
str = "ABCDE"
index_n = str.find("A") # 0이 반환된다.

# 2) 검색시작 위치를 지정해서 찾기 
str1 = "ABCABCABC"
index_n = str1.find("A", 2) # index 2번인 C부터 검색을 시작한다. 3을 반환한다.

- find는 첫번째로 검색되는 문자의 index를 반환한다. 

 


1. 백준 11654 - 아스키코드

a) ord(param)

- 문자를 아스키코드로 바꾸는 메소드

print(ord("A")) #65를 반환한다.

 

b) chr(param)

- 아스키코드를 문자로 바꾸는 메소드

print(chr(65)) # 대문자 A를 반환한다.

 

[참고자료]

https://lsjsj92.tistory.com/201

 

이수진의 블로그

안녕하세요. 이수진이라고 합니다. 이 블로그는 AI(인공지능), Data Science(데이터 사이언스), Machine Learning, Deep Learning 등의 IT를 주제로 운영하고 있는 블로그입니다.

lsjsj92.tistory.com


 

댓글