본문 바로가기

알고리즘65

[BOJ] 2630. 색종이 만들기 문제https://www.acmicpc.net/problem/2630잘라진 하얀색 색종이와 파란색 색종이의 개수를 구하기 주요 아이디어영역 전체가 같은 색이 아니라면 절반으로 계속 잘라주기 -> 재귀로 구현파란색 / 하얀색 종이 판단해서 cnt 올리기 코드 구현 (Python 3)더보기 import sysfrom collections import Countersys.setrecursionlimit(10**5)result = []# 색종이의 color 판단def check_color(paper): total = sum(sum(paper, [])) if total == len(paper) * len(paper[0]): return 'B' elif total == 0: .. 2024. 6. 25.
[BOJ] 15686. 치킨 배달 문제https://www.acmicpc.net/problem/15686  주요 아이디어치킨 거리 = 맨해튼 거리 = L1 norm선택될 수 있는 치킨 집은 최대 13개이므로, 브루트포스 (=완전 탐색) 방식을 통해 치킨 집을 선택하는 모든 경우의 수를 구한 다음 각각의 최소 거리를 구하면 된다  코드 구현 (Python 3)더보기 """크기 N*N브루트포스1. 치킨 거리 구하는 함수2. 치킨 집 위치 좌표 넣기3. 해당 치킨 집 위치를 제외하고 모두 없앤 가상맵 생성 함수3. 가상 하나씩 돌면서 모든 경우의 수에 대해 치킨 거리를 계산"""from itertools import combinationsimport sysdef chicken_dist(r1, c1, r2, c2): return abs(r.. 2024. 6. 25.
[프로그래머스] 요격 시스템 문제https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   주요 아이디어이전에 풀었던 "단속 카메라" 문제와 동일한 로직으로 풀 수 있다개구간 끝 (e) 을 기준으로 정렬각각의 미사일 구간을 탐색하며, 구간 요격이 가능한지 판단하고 안될 경우 미사일 한 대씩 추가  코드 구현 (Python 3)더보기 def solution(targets): answer = 0 targets.sort(key = lambda x: x[1]) mi.. 2024. 6. 25.
[프로그래머스] 단속 카메라 문제https://school.programmers.co.kr/learn/courses/30/lessons/42884 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  주요 아이디어유형만 알아두면 정말 쉬운 문제!비슷한 문제로 프로그래머스 요격 시스템이 있다[진입 시점, 진출 시점]을 입력 받고, 모든 차량이 한 번씩 단속카메라를 만나도록 할 때 최소 몇 대를 설치해야 할까?자동차가 도로에서 사라지는, 진출 시점을 기준으로 정렬카메라를 한 대씩 추가하면서 현재까지 설치된 단속 카메라의 범위를 갱신해주기  코드 구현 (Python 3)더보기 def solutio.. 2024. 6. 25.
[LeetCode] Add Two numbers 문제https://leetcode.com/problems/add-two-numbers/description/leetcode 사이트의 문제는 처음 풀어본다! 신기...백준은 자유형식, 프로그래머스는 함수 형태로 초기 포맷이 주어진다면, 여기에서는 class 형태로 기본 포맷이 주어진다는 게 가장 특이한 점인듯  주요 아이디어문제가 영어지만(...) 풀이 과정 자체는 굉장히 간단한 편!음수가 아닌 수만 담겨있는 2개의 linked list를 입력 받고둘을 합한 수가 담긴 linked list 반환하기  코드 구현 (Python 3)더보기 # Definition for singly-linked list.class ListNode: def __init__(self, val=0, next=None): .. 2024. 6. 25.
[프로그래머스] 문자열 압축 문제https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  주요 아이디어몇 개 단위로 압축할 지 순회하기제일 앞부터 정해진 길이만큼 잘라야 함  코드 구현 (Python 3)더보기 def solution(s): # 맨 처음에는 문자열 원래 길이 (압축 안됐을 때) answer = len(s) # 1~n-1 길이로 자르기 for length in range(1, len(s)): comp_str = '' .. 2024. 6. 25.