시소 짝꿍 (Counter)
·
Coding Test/programmers
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 2 ≤ weights의 길이 ≤ 100,000이므로 조합으로 풀면 시간초과 풀이 from collections import Counter def solution(weights): answer = 0 counter = Counter(weights) for c in counter: answer += counter[c]*(counter[c]-1)//2 answer += counter[c]*counter[c*3/2] answer += counter[c]*counter[c*2] answer += counter[c..
요격 시스템 (그리디)
·
Coding Test/programmers
https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 끝값이 현재 시작값 보다 큰 경우 겹칩 끝값 유지 끝값이 현재 시작값보다 같거나 작은 경우 겹치지 않음 미사일 수 1 증가 시작값, 끝값 갱신 [[1, 4], [3, 7], [4, 5], [4, 8], [5, 12], [10, 14], [11, 13]] nowStart nowEnd end answer 4 1 3 7 4 1 4 5 5 2 4 8 5 2 5 12 12 3 10 14 12 3 1..
행렬 테두리 회전하기 (이차원 배열 회전)
·
Coding Test/programmers
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(rows, columns, queries): answer = [] arr=[[0]*(columns+1) for _ in range(rows+1)] h=1 for i in range(1, rows+1): for j in range(1, columns+1): arr[i][j]=h h+=1 for x1, y1, x2, y2 in queries: tmp=arr[x1][y1] min_val=tmp for k in range(x1,x2): # 왼쪽으로 t = arr[k+1][y1] arr[k][y..
무인도 여행 (BFS)
·
Coding Test/programmers
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 섬나라 아일랜드(BFS) 분석 [2667] 단지번호붙이기(BFS) 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단 karla.tistory.com 더보기 [2667] 단지번호붙이기(BFS) 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를..
124 나라의 숫자 (3진수, 0이 없을 때, 재귀)
·
Coding Test/programmers
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 EX) 9는 124나라에서 24 3진법 계산 9 ÷ 3 = 3 ⋯ 0 3 ÷ 3 = 0 ⋯ 0 124나라 계산 9 ÷ 3 = 3 ⋯ 0 ➔ 0은 4로 치환, 몫에 -1을 빼서 재귀 2 ÷ 3 = 0 ⋯ 2 풀이 answer = '' def solution(n): def DFS(x): global answer if x == 0: return else: if x%3==0: DFS((x-1)//3) answer+='4' else: DFS(x//3) answer+=str(x%3) DFS(n) return ans..
최소직사각형 (정렬)
·
Coding Test/programmers
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 큰값(가로)의 최댓값 * 작은값(세로)의 최댓값 def solution(sizes): return max(max(x) for x in sizes) * max(min(x) for x in sizes) [[60, 50], [30, 70], [60, 30], [80, 40]] [60, 50] [30, 70] [60, 30] [80, 40] max([60, 70, 60, 80]) * max(50, 30, 30, 40)) 80 * 50 = 4000 def solution(sizes): return max(sum(siz..