Programming/Python(6)
-
[Python] n진법 변환
[Python] n진법 변환 알고리즘 문제풀이를 하다가 3진법 변환의 문제를 만났다. 해당 경우 기존 진법의 정의를 사용하여 변환하였으나 파이썬에는 유용한 진수 변환 메서드들이 존재하기에 이를 정리하기 위해 글을 작성하게 되었다. 기수법 - 위키백과, 우리 모두의 백과사전 (wikipedia.org) 기수법 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 진법은 여기로 연결됩니다. 군사 용어에 대해서는 진법 (군사) 문서를 참고하십시오. 기수법(記數法, numeral system)은 수를 시각적으로 나타내는 방법으로, 기수 ko.wikipedia.org 10진수 → n진법 10진법의 수를 x진법으로 변환할 때 쓰는 방법이다. 첫번째는 while문을 돌려 주어진 n이 0이 될 때까지 ..
2022.11.24 -
[Python] sort & sorted
[Python] sort & sorted 파이썬에서 리스트 사용 시 기본적으로 제공이 되는 메서드들이다. 둘 다 똑같이 주어진 리스트를 정렬하는 메서드이며 차이점에 대해 정리하려고 한다. sort & sorted의 인자 sort와 sorted의 경우 두 가지의 인자로 해당 리스트의 값들을 반환한다. 각 요소들은 선택적이며 따로 지정하지 않으면 기본 값으로 들어간다. key 선택적으로 넣는 인자 / 정렬이 되는 기준 메서드를 지정할 수 있다. 해당 부분에는 lambda를 넣어 function인자를 채울 수도 있다. 여러 개의 요소를 가지고 있는 경우 해당 키를 통해 어느 요소를 우선적으로 사용할지 정할 수 있다. key의 default값은 None이며 생략 시 default값으로 들어간다. reverse ..
2022.11.16 -
[Python] 문자열 인덱싱 / 슬라이싱
프로그래머스 코딩 문제들을 푸는데 아무래도 인덱싱 / 슬라이싱에 대해 좀 부족한 것 같아 정리를 시작하게 되었다 문자열 문자열 = 따옴표로 둘러싸여진 문자의 집합. 숫자의 경우여도 따옴표로 둘러싸여 있으면 문자 취급을 한다 "abcd efgh 123456" "123456" "가나다" 문자열 인덱싱과 슬라이싱은 이러한 문자열을 가지고 문제 풀이를 쉽게 접근할 수 있도록 해주는 방법이다. 문자열을 만드는 방법은 4가지가 존재한다. 큰따옴표 " "로 둘러싸기 작은따옴표 ' '로 둘러싸기 큰따옴표 3개를 연속으로 """ """ 둘러싸기 작은따옴표 3개를 연속으로 ''' ''' 둘러싸기 해당 방법들을 사용해서 문자열을 만들 수 있다. 문자열 인덱싱 그럼 문자열 인덱싱이란 무엇인가? index는 색인이다. 그래서 ..
2022.11.15 -
[Python] 파이썬 with이란?
최근 크롤링을 공부하던 중에 with 구문이 자주 보여서 정리를 하려 한다. with이란? 파일을 통한 작업을 진행할 때 파일을 한번 열었으면 이제 작업을 하고 나서는 열었던 파일을 저장하고 닫아(close) 줘야 한다. close가 되지 않는다면 해당 파일은 계속 열려있는 상태로 다른 프로그램에서는 접근이 불가능하다. 이런 상황을 막기 위해 close를 잊지말고 사용해야한다. 다만 우리가 코드를 작성하고 코드를 진행하며 오류가 생기거나 우리가 close의 작성을 빼먹는 경우도 존재한다. 이런 경우를 막기위해 사용하는 것이 with 구문이다. - with 구문은 해당 구문이 실행이 되었을 때 오류의 유무에 상관없이 마지막에 close를 해준다. 구문의 형태 with as : 실행1 실행2 with의 ex..
2022.09.12 -
[Python] 알고리즘 - 파이썬
시작의 이유 기존에 자바랑 웹 개발의 백엔드 쪽에 흥미를 가지고 공부를 해서 기존에는 자바를 이용하여 코딩 테스트 준비를 하였다. 하지만 자바를 이용한 문제풀이에 어느정도 한계점을 느끼게 되었고 그 대안책으로 파이썬을 생각하게 되었다. 자바도 내가 그 안에 구현이 된 훌륭한 기능을 제대로 사용하지 못하는 것이지 휼룡한 언어라 생각을 한다. 다만 알고리즘 문제풀이에는 짧은 식견으로나마 파이썬이 조금 더 적합하다고 생각을 하여 파이썬을 코딩 테스트 풀이 언어로 선택하게 되었다. 파이썬의 경우 다른 언어보다 좀 더 알고리즘 문제 풀이에 대한 라이브러리가 존재한다. 이는 강력한 장점이다. 내가 사용하고자 하는 메서드가 이미 라이브러리 안에 구현이 되어있다면 그냥 가져다가 쓰면 되는 것이다. 혹여 다른 언어를 사..
2022.07.02 -
[Python] sys.stdin.readline() vs input()
[Python] sys.stdin.readline() vs input() 파이썬으로 백준 알고리즘 문제를 풀다 보면 풀이 코드로 나오는 값은 같은데 시간 초과가 나오는 경우가 있다. 이런 경우 문제의 주제에 맞는 알고리즘을 구현을 했다면 값을 입력받는 부분을 한번 살펴보자. 위의 사진의 경우 같은 코드로 구현이 되어있다. 실제로 문제의 코드를 살펴보자. # input()으로 받은경우 import heapq heap = [] n = int(input()) for _ in range(n): x = int(input()) if x == 0: try: print(heapq.heappop(heap)) except: print(0) else: heapq.heappush(heap, x) # sys를 import하여 ..
2022.03.23