728x90

Total

728x90

    아이템 줍기 (BFS, 겹쳐진 사각형 테두리 구하기)

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 테두리 좌표는 *2해서 구해야함 : 인접한 테두리가 구해지면 최단경로로 지나기 때문에 인접한 테두리가 생김 빨간 선과 같이 인접한 테두리를 최단경로로 지남 *2를 해서 구하는 경우 인접 테두리가 생기지 않음 풀이 from collections import deque dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def solution(rectangle, characterX, characterY, itemX, itemY): board=[[-1]*102 for _ in range(102..

    단어 변환 (BFS, deque, 리스트 거쳐 target 단어로 변환하기)

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from collections import deque def solution(begin, target, words): answer = 0 v=[0]*len(words) # 단어 사용체크 리스트 q = deque() q.append([begin, 0]) while q: word, cnt = q.popleft() if word == target: answer = cnt break for i in range(len(words)): word2=words[i] temp_cnt = 0 if not v[i]: # 사용안한..

    파이썬 yield, 제너레이터(generator)

    yield 호출한쪽으로 프로그램 제어를 넘겨주는 키워드 함수 내에서 사용하며, generator객체를 생성 return vs yield >>> print(return_abc()) ['A', 'B', 'C'] >>> print(yield_abc()) 알파벳 하나를 만드는데 1초가 걸리는 함수 import time def return_abc(): alphabets = [] for ch in "ABC": time.sleep(1) alphabets.append(ch) return alphabets def yield_abc(): for ch in "ABC": time.sleep(1) yield ch return for ch in return_abc(): print(ch) # 3초 경과 A B C yield for..

    큰 수 만들기 (스택)

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(number, k): stack = [] for x in number: while stack and stack[-1]0: k-=1 stack.pop() stack.append(x) return ''.join(stack[:len(stack)-k])

    여행경로 (DFS, 모든 경로 사용해서 모든 노드 방문)

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 무조건 알파벳 순서가 앞서는 곳을 향하도록 여행 경로를 구성하면 문제의 답을 올바르게 구할 수 있음을 보장하지 않음 ticket result [["ICN", "AAA"], ["ICN", "CCC"], ["CCC", "DDD"], ["AAA", "BBB"], ["AAA", "BBB"], ["DDD", "ICN"], ["BBB", "AAA"]] ["ICN", "CCC", "DDD", "ICN", "AAA", "BBB", "AAA", "BBB"] 위 예시에서 처음에 "ICN"에서 출발하여 "AAA"를 먼저 방..

    쿼드압축 후 개수 세기 (재귀)

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 배열의 길이가 1이 될 때 까지 4개로 나눔 (재귀) 4개로 나누는 시작 좌표, 길이를 매개변수로 하는 함수 생성 풀이 def solution(arr): answer = [0, 0] def quad(r,c,n): if len(arr) == 1: answer[arr[r][c]] += 1 return else: tg = arr[r][c] for i in range(n): for j in range(n): if arr[r+i][c+j] != tg: n=n//2 quad(r, c, n) quad(r, c+n, ..

    [Python] 삼각 달팽이 (리스트 반시계 방향으로 채우기)

    프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  분석삼각형 리스트 생성채울 숫자 변수 선언n번 회전하므로 n번 반복3으로 나눠서 방향 체크 : 세 방향(아래쪽, 오른쪽, 위쪽)으로 채워지기 때문회전하면서 채워지는 길이는  n, n-1, n-2, ... ,1n=5인 경우, 5번 회전하면서(1,2,3,4,5) 방향 하(6,7,8,9) 방향 우 (10,11,12) 방향 상(13,14) 방향 하(15) 방향 우순서로 채워짐 풀이def solution(n): answer = [[0 for j in range(1, i+1)] for i in range(1,..

    단속카메라 (greedy)

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 배열 정렬 첫번째 선으로 시작 이어져있다면 끝이 더 작은걸로 연결하고(겹쳐야 카운트하기 때문에), 끊어져있다면 카운트 한 후 새로 시작 [2170] 선 긋기 (선의 총 길이 구하기) 2170번: 선 긋기 첫째 줄에 선을 그은 횟수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 다음 N개의 줄에는 선을 그을 때 선택한 두 점의 위치 x, y (-1,000,000,000 ≤ x < y ≤ 1,000,000,000)가 주어진다. www.acmicpc.net 분 karla.tistory.com 풀이 def..

    숫자 게임 (리스트 비교, deque)

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from collections import deque def solution(A, B): answer = 0 A.sort() B.sort() A = deque(A) B = deque(B) while B: if A[0] < B[0]: answer += 1 A.popleft() B.popleft() else: B.popleft() return answer

    스킬트리 (큐)

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 선행 스킬 순서 skill과 유저들이 만든 스킬트리를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return def solution(skill, ski..