🏋️♂️ 파이썬의 오름차순 정렬은 아주 쉽죠! list.sort() 메서드 또는 sorted() 내장함수를 사용해주면 됩니다. 왜 같은 정렬 기능을 하는 게 두개나 있을까요? 메서드와 함수의 차이는 또 뭘까요? 이것을 이번 포스팅에서 알아보려고 합니다. 📌 메서드와 내장 함수 클래스 메서드에 대해 이해를 하려면 우선 클래스가 무엇인지를 알아야 하는데요. 파이썬은 객체 지향 프로그래밍(OOP, Object Oriented Programming)을 지원하는 언어입니다. 파이썬 OOP의 꽃이 바로 클래스인데요. 객체지향의 기본 단위가 된답니다. 흔히 비유하는 붕어빵 틀이 클래스가 되는 거죠! 클래스는 데이터를 표현하는 속성(attribute)과 행위를 표현하는 메서드(method)를 포함하는데요. 행위! 정..
Language/Python
리스트 컴프리헨션(list comprehension)이란? 리스트 컴프리헨션은 파이썬의 아주 좋은 기능 중 하나로써, 간단하게 리스트를 생성할 수 있는 방법입니다. 기본 사용법 1부터 10까지의 정수가 담긴 리스트 nums를 만드는 코드를 작성해봅시다. 일반적인 for문을 사용한 코드는 다음과 같습니다. nums = [] for num in range(1, 11): nums.append(num) 리스트 컴프리헨션을 사용하면 이 코드를 한 줄로 줄일 수 있습니다. nums = [num for num in range(1, 11)] 처음 보면 헐 이게 뭐여?! 할 수 있는데요. 대응관계를 그림으로 한 번 살펴볼게요! 리스트를 의미하는 대괄호[ ]는 그대로 들어갑니다. * 딕셔너리 컴프리헨션과 셋(집합) 컴프리..
📌 올림(ceil) math 모듈의 ceil을 사용해 올림 계산을 할 수 있습니다. >>> import math# math 모듈을 import 합니다. >>> math.ceil(-10.24)# -10 >>> math.ceil(10.24)# 11 📌 내림(floor, trunc) 1. math 모듈의 floor을 사용해 내림 계산을 할 수 있습니다. >>> import math# math 모듈을 import 합니다. >>> math.floor(-10.24)# -11 >>> math.floor(10.24)# 10 2. math 모듈의 trunc를 사용해 내림 계산을 할 수 있습니다. >>> import math# math 모듈을 import 합니다. >>> math.trunc(-10.24)# -10 >>> ..
출석부가 있다고 생각해봅시다. 이름은 당연히 알파벳 순일테고.. 만약 동명이인이 있으면 어떡하죠?!!!!! 동명이인은 학번순으로 정렬해보는 것이 어떨지..?! 요걸 파이썬의 sort()와 sorted()를 통해 구현할 수 있답니다 sorted() 사용 sorted(리스트 이름, key = lambda x: 정렬 기준을 순서대로) students = [['A', 1], ['A', 3], ['C', 5], ['C', 1], ['Jyo', 11]] students = sorted(students, key = lambda x: (x[0], x[1]))# 첫번째 기준으로 정렬, 첫번째 요소 동일하면 두번째 기준으로 정렬 print(students) > [['A', 1], ['A', 3], ['C', 1], ['C..
알고리즘 문제를 풀다보면, 간혹 리스트의 모든 값을 절댓값으로 바꿔야 하는 일이 생깁니다. 이번 포스팅에서는 리스트의 모든 요소를 절댓값으로 바꾸는 방법에 대해 알아봅시다. 1. 리스트 컴프리헨션 사용하기 >>> l = [-3, -2, -1, 1, 2, 3] >>> l = [abs(x) for x in l] >>> print(l) [3, 2, 1, 1, 2, 3] 2. map 함수 이용하기 map은 반복 가능한 객체를 지정된 함수로 처리해주는 파이썬의 유용한 내장함수입니다. map에 대해 자세하게 알고싶다면 아래의 글을 참고해주세요! 2022.09.02 - [📂 Language/Python] - [Python] 파이썬 map을 이용해 형 변환 한번에 하기 [Python] 파이썬 map을 이용해 형 변환 ..
⚡ sys.stdin.readline을 사용해야 할 때 (feat. 백준 15552번) 백준에서 알고리즘 문제를 풀면서 다들 시간초과에 시달린 적이 한 번쯤 있을 거예요. 시간복잡도를 고려하지 않은 코드가 문제일수도 있겠지만, 분명 시간복잡도를 고려하여 코드를 짰는데도 시간 초과가 뜨는 경우가 있죠. 그 경우 중 하나가 바로 파이썬의 input 때문에 발생하는 일이랍니다. 백준 15552번 문제를 보시면, 문제 자체는 어렵지 않죠? 그냥 A+B 해서 출력하기만 하면 되는 일이니까요. 코드도 쉽게 짜볼 수 있습니다. t = int(input()) for _ in range(t): a, b = map(int, input().split()) print(a + b) 그런데 이상하게 계속해서 시간 초과로 실패하게..
📚 count string.count(찾을 문자/문자열, 시작 인덱스, 끝 인덱스) 기본 형태는 위와 같다. 시작 인덱스와 끝 인덱스는 생략 가능하다. 생략 시 처음부터 끝까지 탐색한다. 이때, 파이썬에서의 일반적인 범위처럼 끝 인덱스는 미만까지 검색하는 것에 유의하자!! 📚 예제 1. 'Hello world!'에서 l이 몇개인지 세는 코드 >>> 'Hello world!'.count('l') 3 2. 'forwhileforforwhilewhilelsjdkfldsl'에서 for이 몇개인지 세는 코드 >>> 'forwhileforforwhilewhilelsjdkfldsl'.count('for') 3 3. '딸기당근수박참외메론게임딸기당근수박참외메론게임'에서 인덱스 3부터 9까지의 '당' 개수 >>> '딸기당..
📚 서론 백준 10818번: 최소, 최대 문제를 풀던 중이었다. 내가 이 문제를 풀기 위해 짠 코드는 다음과 같다. n = int(input()) nums = input() nums = nums.split() for i in range(n): nums[i] = int(nums[i]) print(min(nums), max(nums)) 여기서 의문점이 생겼는데, 아니 파이썬 분명 편한 언어자나?!! input 받고, split 하고, 하나하나 for문 돌려서 형변환을 해줘야된단마랴?? 더 파이썬스러운 방법은 없을까?? 생각하며 스터디를 시작했는데 다른 스터디원이 map을 쓴 것이었다!!!!! 대박적 발견! 그래서 완존 파이썬스러운 map의 용도와 사용법을 정리해보게 되었다. 📚 map() 함수란? 간단히 말..