백준 1012 | DFS | 유기농 배추 [파이썬 python]
·
Algorithm/백준
1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 코드 import sys sys.setrecursionlimit(10**6) input = sys.stdin.readline # dfs 정의 def dfs(x, y): # 상하좌우 dx = [0, 0, -1, 1] dy = [1, -1, 0, 0] # 네 방향 탐색 for i in range(4): nx = x + dx[i] ny = y + dy[i] # 범위 안에 있고 1이면(=배추이면) 지나간것을 -1로 표시하고 주변 탐색 if (0
pandas | merge(), join(), concat() 함수 사용하기
·
TIL/python
pandas에서 데이터를 결합할 때 사용하는 merge(), join(), concat() 함수 사용 방법에 대해 정리해보려 한다. 다음과 같은 left, right 데이터를 사용한다. merge() 함수를 사용하면 기본적으로 공통된 컬럼을 기준으로 inner join(내부 조인)을 수행한다. inner join(내부 조인): 양쪽 테이블에서 공통된 키값에 대해서만 데이터 결합 따라서 left, right의 공통된 컬럼 key를 기준으로 결합하며, b, c, e에 대해서 내부 조인을 수행한다. left.merge(right) 내부 조인이 아닌 전체 조인(outer join)을 하고 싶으면 merge() 함수의 매개변수 how에 'outer'를 전달해 주면 된다. outer join(전체 조인): 공통되지..
백준 1541 | 그리디 | 잃어버린 괄호 [파이썬 python]
·
Algorithm/백준
1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 처음 시도한 코드 math = input().split('-') # '-' 기준 분리 hap = [] for i in math: if i.isdigit(): # 숫자이면 정수로 바꿔 hap에 저장 hap.append(int(i)) else: # 문자열이면 eval 메소드로 식 계산 hap.append(eval(i)) result = hap[0] for i in hap[1:]: # hap의 1번 이후 값들을 순차적으로 result에서 빼줌 result -= ..
프로그래머스 | 체육복 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(n, lost, reserve): # 정렬 lost.sort() reserve.sort() # lost, reserve에 공통으로 있는 요소 제거 for i in reserve[:]: if i in lost: reserve.remove(i) lost.remove(i) # 체육복 빌려주기(나의 앞 번호부터 확인) for i in reserve: if i-1 in lost: lost.remove(i-1) elif i+1 in lost: lost.remove(i+1) return n-l..
프로그래머스 | 문자열 나누기 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(s): answer = 0 # 분해한 문자열의 개수 isx, isnotx = 0, 0 # x와 같은 글자 수, 다른 글자 수 for i in range(len(s)): if isx == isnotx: # 두 횟수가 같으면 분리(answer+1) answer += 1 x = s[i] isx, isnotx = 0, 0 if s[i] == x: isx += 1 else: isnotx += 1 return answer 문자열 s의 첫 글자를 x라 할 때, 차례대로 문자를 읽어가며 x와 같..
프로그래머스 | 공원 산책 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(park, routes): # 시작점('S') 찾기 x, y = 0, 0 for row in range(len(park)): for col in range(len(park[row])): if park[row][col] == 'S': # 시작 지점 'S' x, y = row, col # 이동 방향 정의 op = {'N':(-1, 0), 'S':(1, 0), 'W':(0, -1), 'E':(0, 1)} # 이동 for i in routes: dx, dy = op[i.split()[0]..