본문 바로가기

Algorithm/Python

(29)
[Python] 알파벳을 숫자로 만들기 (아스키코드) 알파벳 A 또는 a를 숫자 1에 대응시키는 법에 대해 알아보자. 우선 아스키코드가 무엇인지부터 알아야 한다. 아스키코드는 영문 키보드로 입력할 수 있는 모든 기호들이 할당되어 있는 가장 기본적인 부호 체계이다. 알파벳 A의 아스키코드는 65, a의 아스키코드는 97임을 확인할 수 있다. 파이썬에는 아스키코드 변환과 관련된 함수가 2가지 있다. 1. ord(문자) 하나의 문자를 인자로 받고 해당 문자에 해당하는 유니코드 정수를 반환한다. ex) ord('a') -> 정수 97을 반환 2. chr(숫자) 하나의 정수를 인자로 받고 해당 정수에 해당하는 유니코드 문자를 반환한다. 인자(정수)의 유효 범위는 0 ~ 1,114,111 (16진수 0x10 FFFF)까지 입니다. chr(97) -> 문자 'a'를 반..
[Python] range함수 사용법 1. range(10) >>> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 2. range(1,11) >>> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 3. range(0, 20, 2) >>> 0, 2, 4, 6, 8, 10, 12, 14, 16, 18 4. range(20, 0, -2) >>> 20, 18, 16, 14, 12, 10, 8, 6, 4, 2
[Python] 숫자 리스트에서 2번째, K번째 최댓값 구하기 1. 두번째 최댓값 구하기 def second_largest_number(arr): eigen_nums = set(arr) sorted_nums = sorted(eigen_nums, reverse=True) return sorted_nums[1] 중복을 허용하지 않기 때문에 함수의 첫번째 줄에서 정렬을 하기 전에 고유값만 남기도록 코드를 작성하였다. 그리고 정렬을 내림차순으로 진행하고 2번째 값을 반환하면 된다! 2. K번째 최댓값 구하기 def kth_largest_number(arr, K): eigen_nums = set(arr) sorted_nums = sorted(eigen_nums, reverse=True) return sorted_nums[K-1] 두번째 최댓값을 구할때는 1을 인덱스를 반환했..
[Python] 파이참(pycharm) 입력 모드 바꾸기 파이참에서 갑자기 엔터가 안먹히거나 입력이 안될 때가 있다. 이는 우리가 알게 모르게 입력 모드가 바뀌어서 그런 것이다. Insert를 누르면 해결된다.
[Python] 순열, 중복순열, 조합 구현하기 (no itertools) 파이썬에는 자체적으로 내장된 itertools 패키지의 combinations 모듈과 permutations 모듈을 이용해 간단히 순열과 조합을 구할 수 있다. 그러나 우리는 이러한 모듈을 이용하지 않고 직접 구현을 해보자. #순열입력 예시3 21 2 3출력 예시[[1, 2], [1, 3], [2, 1], [2, 3], [3, 1], [3, 2]]Solution n, r = map(int, input().split())graph = list(map(int, input().split()))def perm(arr, r): result = [] if r == 1: for i in arr: result.append([i]) elif r > 1: for..
[Python] 변수 입력받기 데이터의 개수를 입력하고 각 데이트를 공백으로 구분하여 입력 # 데이터의 개수 입력n = int(input())# 각 데이터를 공백으로 구분하여 입력data = list(map(int, input().split()))data.sort(reverse=True)print(data)# 출력310 20 30[30, 20, 10] 2개의 변수에 동시에 정수 자료형을 입력받기 (몇개라도 상관 없음) a, b = map(int, input().split())  한 줄에 정수 자료형 여러개 입력받기 num_list = list(map(int, input().split())) #입력 : 1 2 3 /출력 : [1, 2, 3] 정수 자료형을 여러 줄에 입력받기 s_list = [input() for _ in range(n..
[Python] 집합 자료형 집합 자료형을 만드는 방법 >>> s1 = set([1,2,3]) >>> s1 {1, 2, 3} >>> s2 = set("Hello") >>> s2 {'e', 'H', 'l', 'o'} 집합 자료형의 특징 중복을 허용하지 않는다. 순서가 없다(Unordered). 리스트나 튜플은 순서가 있기(ordered) 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있지만 set 자료형은 순서가 없기(unordered) 때문에 인덱싱으로 값을 얻을 수 없다. 딕셔너리 역시 순서가 없는 자료형이라 인덱싱을 지원하지 않는다. 만약 set 자료형에 저장된 값을 인덱싱으로 접근하려면 다음과 같이 리스트나 튜플로 변환한후 해야 한다. >>> s1 = set([1,2,3]) >>> l1 = list(s1) >>> l1 [1, 2..
[Python] 딕셔너리 딕셔너리란 무엇인가? 사람은 누구든지 "이름" = "홍길동", "생일" = "몇 월 며칠" 등으로 나타낼 수 있다. 파이썬은 영리하게도 이러한 대응 관계를 나타낼 수 있는 자료형을 가지고 있다. 요즘 사용하는 대부분의 언어도 이러한 대응 관계를 나타내는 자료형을 갖고 있는데, 이를 연관 배열(Associative array) 또는 해시(Hash)라고 한다. 파이썬에서는 이러한 자료형을 딕셔너리(Dictionary)라고 하는데, 단어 그대로 해석하면 사전이라는 뜻이다. 즉 "people"이라는 단어에 "사람", "baseball"이라는 단어에 "야구"라는 뜻이 부합되듯이 딕셔너리는 Key와 Value를 한 쌍으로 갖는 자료형이다. 예컨대 Key가 "baseball"이라면 Value는 "야구"가 될 것이다...