본문 바로가기

python67

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.
Educational Codeforces Round 130 (Div. 2)) A. Parkway Walk [문제설명] 공원에서 길을 걷는데 n+1개의 벤치가 있고 m단위 만큼의 에너지가 있다. 1m 걷는데 1단위의 에너지를 잃는다. 각 벤치 사이 거리가 정수로 n개만큼 주어진다. 벤치에서는 휴식을 취할 수 있다. 휴식을 취하면 원하는 에너지만큼 회복할 수 있다. 처음에 테이스 케이스가 주어진다. 테스트 케이스의 첫번째 줄은 벤치 사이의 거리가 몇개나 있는지(n+1 = 벤치 수), 출발 시 가지고 있는 에너지량(m)을 입력받는다. 테스트 케이스의 두번째 줄은 벤치 사이의 거리를 입력받는다. 각 테스트 케이스의 회복해야할 에너지의 최소량을 출력해야 한다. 문제를 해결하기 위해서 가장 끝 벤치까지 가는데 필요한 총에너지에서 현재 가지고 있는 에너지를 빼주면 된다. 첫번째 벤치에서 미리 에너지를 모두 모은다음에 출.. 2022. 6. 13.
파이썬 - enumerate 열거하다 라는 뜻으로, for문과 함께 자주 사용되며 순서가 있는 자료형의 인덱스를 부여해주는 기능이 있다. 인덱스 번호와 컬렉션 원소를 tuple형태로 반환한다. for i in enumerate(('a','b','c','d')): print(i) (0, 'a') (1, 'b') (2, 'c') (3, 'd') 위 코드처럼 i 하나로만 받을 경우 인덱스 번호와 순서가 있는 자료형의 값을 하나씩 튜플로 반환한다. for i,j in enumerate(['a','b','c','d']): print(i,j) 0 a 1 b 2 c 3 d i, j 2개로 받을 경우 i에는 인덱스 번호가 들어가고 j에는 값을 하나씩 받는 것을 볼 수 있다. for i in enumerate({'a':'가', 'b':'나','c'.. 2022. 5. 15.
파이썬 - 넘파이 브로드캐스팅 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.
파이썬 - 넘파이 repeat import numpy as np c = np.bincount([6,1,1,2,3,4,4,6]) # bincount를 생성 print(c) x = np.arange(len(c)) # c의 길이만큼 배열생성 print(x) a = np.repeat(x, repeats = c) # a를 repeat를 이용해 x를 c와 같아지도록 반복 print(a) [0 2 1 1 2 0 2] [0 1 2 3 4 5 6] [1 1 2 3 4 4 6 6] repeat를 이용할 때 반복횟수(p)에 repeat를 적용할 배열(x)와 broadcasting이 가능한 배열을 넣어주면 배열(x)의 인덱스에 있는 숫자가 배열(p)의 인덱스에 있는 숫자만큼 반복하게된다. print(np.repeat(x, repeats=3)) p1 = [.. 2022. 5. 9.
파이썬 - 농담게임 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.
Codeforces Round #784 (Div. 4) A. Division? [문제설명] 간단하게 rating점수를 구간에 따라서 Division 1부터 Division 4까지 출력하는 문제이다. t = int(input()) for _ in range(t): x = int(input()) if 1900 2022. 4. 29.
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.