프로그래머스 | 겹치는 선분의 길이 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(lines): answer = 0 count = [0 for _ in range(200)] # -100 ~ 100 까지의 범위에서 해당 점에 선분이 그어진 횟수 for line in lines: for i in range(line[0], line[1]): count[i + 100] += 1 answer += count.count(2) # 두 개 이상 겹친 점 answer += count.count(3) # 세 개 이상 겹친 점 return answer 그림과 같이 세 선분이 그려져..
프로그래머스 | 평행 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 from itertools import combinations def solution(dots): answer = 0 combi = list(combinations(dots, 2)) # 네 점에서 두 개씩 조합 # 조합의 결과는 정렬되어 나오기 때문에 대칭으로 짝을 이룸 -> 그러므로 절반까지만 for문 for i in range(len(combi)//2): dx1, dy1 = combi[i][0][0] - combi[i][1][0], combi[i][0][1]-combi[i][1][1] dx2, dy2..
프로그래머스 | 안전지대 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import numpy as np def solution(board): n = len(board) map = [[0]*(len(board)+2) for _ in range(len(board)+2)] # n+2 * n+2 행렬 map = np.array(map) bomb = [] # 지뢰 위치 저장 for i in range(n): for j in range(n): if board[i][j] == 1: bomb.append((i+1, j+1)) # map 기준 지뢰 위치 map[i+1][j+1] = 1 #..
프로그래머스 | 숨어있는 숫자의 덧셈(2) [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 1 - isalpha() 사용 def solution(my_string): for i in my_string: if i.isalpha(): my_string = my_string.replace(i, ' ') my_string = my_string.split() return sum(list(map(int, my_string))) 소문자, 대문자, 자연수로 구성된 문자열에서 숫자들의 합을 구하는 문제이다. "aAb1B2cC34oOp" 이런 식으로 문자열이 주어지면 숫자인 1 + 2 + 34의 합인 37을 구..
프로그래머스 | 다항식 더하기 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(polynomial): polynomial = polynomial.replace(' ', '').split('+') a, b = 0, 0 for i in polynomial: if 'x' in i: if len(i) > 1: a += int(i[:-1]) else: a +=1 else: b += int(i) if a == 0: return '{}'.format(b) elif a == 1: if b == 0: return 'x' elif b != 0: return 'x + {}'.f..
프로그래머스 | 캐릭터의 좌표 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(keyinput, board): x, y = 0, 0 xlim = board[0]//2 ylim = board[1]//2 for i in keyinput: if i == 'right': if x >= xlim: x = xlim else: x +=1 elif i == 'left': if x = ylim: y = ylim else: y += 1 elif i == 'down': if y x_lim or abs(y+dy)>y_lim: continue else: x,y = x+dx,y+dy..