본문 바로가기

파이썬106

카드 정렬하기 - 백준 1715번 카드를 묶는 순서를 우선순위 큐로 생각하여 문제를 해결한다. 5 묶음의 카드가 10, 20, 30, 40, 50 장 있다고 생각해 보자 가장 작은 수 2개를 묶은 뒤 비교횟수에 더하고 다시 가장 작은 수 2개를 묶은 뒤 비교횟수에 더하는 행위를 카드 묶음이 1개가 남을 때 까지 반복해준다. 10 20 30 40 50 (묶기) result : 0 30 30 40 50 (묶기) result : 0 + 30 60 40 50 (묶기) result : 30 + 60 60 90 (묶기) result : 90 + 90 150 (묶기) result : 180 + 150 150 (완료) result : 330 파이썬의 heapq를 이용하면 이 과정 그대로 진행해주면 되고, 배열만 이용하여 문제를 해결하게 되면 3번째 부.. 2022. 6. 21.
Codeforces Round #801 (Div. 2) A. Subrectangle Guess [문제설명] 철수와 영희는 n개의 행과 m개의 열로 이루어진 그리드에서 게임을 한다. 이 그리드 안에는 서로다른 정수들이 있다. i번째 행과 j번째 열에 있는 사각형은 (i, j)라고 표현할 수 있다. 철수는 h(1 2022. 6. 20.
단지번호붙이기 - 백준 2667번 문제에 설명에 나와있듯이 1은 집이 있는 곳을 나타내고 0은 집이 없는 곳을 나타낸다. x축과 y축을 그려서 각 집마다 좌표를 구한다. 집이 있는 좌표만 배열에 담아서 DFS를 통해 문제를 해결할 수 있다. n = int(input()) arr = [] for _ in range(n): p = input() arr.append(p) x = 0 y = 0 cordinate = [] for i in arr: for j in i: if j == '1': cordinate.append([x,y]) x+=1 y+=1 x=0 # print(cordinate) def search(mainList): # 입력받은 배열이 비어있으면 종료 if mainList == []: return 'end' villageCount =.. 2022. 6. 18.
파이썬 - 넘파이 브로드캐스팅 import numpy as np A = np.arange(3).reshape(3,1) B = np.arange(3).reshape(1,3) print('A :\n',A) print('B :\n',B) print(A+B)​ A : [[0] [1] [2]] B : [[0 1 2]] [[0 1 2] [1 2 3] [2 3 4]] 넘파이의 브로드캐스팅 기능이 덧셈이 가능하다고 판단하여 행렬간의 덧셈을 해주었다. a = np.array([1,2,3,4,5]) b = np.array([1,2]) print('a :\n',a) print('b :\n',b) print(a+b) a : [1 2 3 4 5] b : [1 2]​ 반면에 위 코드처럼 넘파이의 브로드캐스팅 기능이 덧셈이 불가능하다고 판단하면 오류가 발생한다.. 2022. 5. 11.
파이썬 - 농담게임 Invent Your Own Computer Games with Python, 4th Edition 이라는 책을 바탕으로 만들었습니다. 4장 농담게임 4장은 농담게임이다. 넌센스 퀴즈가 출력되면 입력을 받고 답을 출력하는 간단한 프로그램이다. # jokes 게임의 출력 입력의 반복 print('What do you get when you cross a snowman with a vampire?') input() print('Frostbite!') print() print('What do dentists call an astronaut\'s cavity?') input() print('A black hole!') print() print('Knock knock.') input() print("Who's t.. 2022. 5. 6.
파이썬 - 숫자 맞추기 게임 Invent Your Own Computer Games with Python, 4th Edition 이라는 책을 바탕으로 만들었습니다. 1장은 사칙연산과 변수에 숫자를 넣어 계산하는 기본적인 내용에 대해 다루었다. 2장은 문자열의 덧셈과 출력, 입력에 대해 간단하게 이루어져있다. 3장 숫자맞추기 게임 3장은 숫자맞추기 게임을 구현하는 문제이다. 규칙을 아래와 같다. 컴퓨터는 1~20사이의 숫자 하나를 비밀로 가지고 있을 것이다. 숫자를 예측할 때마다 컴퓨터는 그 숫자가 큰지 작은지 알려줄 것이다. 6번의 기회 안에 맞춰야 성공이다. # 랜덤으로 숫자를 만들어주기 위해서 random을 불러오고 1~20사이의 숫자를 변수에 저장한다. import random guessNum = random.randint(1.. 2022. 5. 4.
Python 파이썬 map()함수, filter()함수 비교 주어진 배열에 있는 정수들 중에서 양수만 뽑아서 출력하는 함수 만들기 map함수 def positive_list(a): def positive(n): return n>0 ans = list(map(positive, a)) return ans positive_list([-1, 1, 2, -2, 3, -3]) [False, True, True, False, True, False] filter함수 def positive_list(a): def positive(n): return n>0 ans = list(filter(positive, a)) return ans positive_list([-1, 1, 2, -2, 3, -3]) [1, 2, 3] 같은 구조로 map과 filter만 다르게 써봤다. map 사용하니.. 2022. 4. 2.
파이썬 기초 - 기본 자료형 파이썬의 기본 자료형 파이썬의 기본자료형은 기본적으로 정수, 부동소수점(실수&유리수), 부울, 문자 4가지로 이루어져있다. 정수 정수는 int자료형이다. n = 2 print(type(n)) 부동소수점 부동소수점은 유리수, 실수를 가리키며 float 자료형이다. a = 1.22 b = -0.03 print(type(a+b)) c = 2 d = 2.21 print(type(c+d)) 정수와 연산하면 자동으로 결과값은 부동소수점형태로 취급한다. e = 8 f = 2 print(e/f, type(e/f)) 4.0 나눗셈을 하면 그 결과는 항상 부동소수점으로 취급된다. 문자열 문자열은 string자료형을 나타낸다. s = 'jelly beans' ss = ''' jelly beans hello world '''.. 2022. 3. 18.
파이썬 기초 - 배열과 문자열 배열과 문자열 배열 여러개의 값을 하나로 묶어 놓은 것을 배열이라 한다. 배열 내에는 여러개의 자료형이 들어갈 수 있다. 배열은 순서(인덱스)를 갖고 있다. 왼쪽부터 0, 1, 2 ... 으로 늘어난다. arr = ('apple', 2, 3, 1, '22', 'array') print(arr) print(arr[0]) print(arr[2]) ('apple', 2, 3, 1, '22', 'array') apple 3 print(arr[0:3]) print(arr[:]) print(arr[-1]) print(arr[::2]) print(arr[4::-1]) ('apple', 2, 3) ('apple', 2, 3, 1, '22', 'array') array ('apple', 3, '22') ('22', 1,.. 2022. 3. 6.
파이썬 기초 - 변수, 자료형, 사칙연산 변수 선언과 자료형 파이썬에서는 변수를 선언할 때 변수에 들어갈 값의 자료형을 파이썬이 자동으로 설정해준다. 변수 선언은 선언할 변수이름과 변수에 넣을 값을 등호 1개로 연결시켜준다. 변수에 값을 넣을 때에는 자료형 선언을 해줄 필요가 없다. 변수에 들어가있는 값의 자료형을 출력하기위해 print()함수를 사용해준다. print(22) a = 4 print(a) print('a :', a, type(a)) b = 'python' print('b :', b, type(b)) c = 2.2 print('c :', c, type(c)) d = True print('d :', d, type(d)) e = (1.0 == 1) d = True print('e :', e, type(e)) print(a,b,c,d,e.. 2022. 3. 4.