728x90 Python164 [백준] 15638. 감시 - Python https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 생각 카메라 위치와 카메라 번호 체크!! CCTV 감시해야 할 구역 수 구하기 사각지대 = CCTV 감시해야 할 구역 수 - CCTV 감시 구역 수 각 카메라 번호가 감시할 수 있는 방향! 1,3,4 : 4가지 2 : 2가지 5 : 1가지 각각의 카메라가 방향에 따라 감시할 수 있는 구역 리스트 구하기 각각 카메라 구역 리스트에서 1개씩 뽑는 경우 구하기 cartesian product.. 2022. 6. 27. 알고리즘 - DP / [백준] 11726. 타일링 - Python DP : Dynamic Programming 이전의 값을 재활용 하는 알고리즘 예시 : 1~10 숫자 중, 각각 이전 값들을 합한 값 구하기 이전의 값을 활용해서 시간 복잡도를 줄일 수 있음 https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 생각 n이 1이면 1 n이 2이면 2 n이 3이면 1+2 A(n) = A(n-1) + A(n-2) 코드 from sys import stdin input = stdin.readline # 2Xn 크기의 직사각형 n = int(in.. 2022. 6. 26. [백준] 2110. 공유기 설치 - Python https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 생각 공유기 사이의 거리를 기준으로 이진탐색 start = 1, end = 첫번째 집과 마지막 집 거리 mid = (start + end)//2 거리가 mid 이상이면 뽑기 첫번째 집부터 순서대로 거리 계산 만약 공유기 설치한 집 수가 원하는 집 수보다 적으면 mid를 줄여야함 같다면 가장 인접한 두 공유기 사이의 최대 거리를 구하는 것이므로 m.. 2022. 6. 25. [백준] 2579. 계단 오르기 - Python https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 생각 DP 계단이 1칸짜리면 1칸 오르고 끝 2칸 이상일 때 1번 계단 : 1번계단 오르기 점수 2번 계단 : 1번계단 오르기 점수 + 2번계단 오르기 점수 3번 계단 : max(1번계단 오르기 점수 + 3번계단 오르기 점수, 2번계단 오르기 점수 + 3번계단 오르기 점수) 1번 -> 2번 -> 3번 : 불가능 1번 -> 3번 : 가능 2번 -> 3번 : 가능 i번( 4이상) : 두 가지 경우 중 최대값 한 .. 2022. 6. 24. [백준] 1654. 랜선 자르기 - Python https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 생각 길이를 이분 탐색으로 찾기 처음에는 길이 합을 필요한 랜선의 개수로 나눈 그 숫자부터 찾으려고 했으나 시간초과를 우려해 이분탐색으로 바꿨다. 이전에 '나무 자르기' 문제를 푼 것이 많이 도움이 되었다. 코드 input = stdin.readline # 이미 가지고 있는 랜선의 개수, 필요한 랜선의 개수 K,N = map(int,input().split()) # 가.. 2022. 6. 23. [프로그래머스] Lv. 2 메뉴 리뉴얼 https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 생각 from collections import Counter 중복된 거 갯수 세서 dictionary 형태로 만들어준다. 문제를 제대로 이해하지 못해 1시간 넘게 잘못된 코드를 짬... 힘들었다. 문제가 기니깐 집중력이 많이 떨어지는 듯 가장 많이 함께 주문된 단품메뉴 조합을 ABC가 메뉴 구성에 있으면 AB,BC,AC는 들어가면 안된다고 생각함...ㅜ 코드 계.. 2022. 6. 23. 이전 1 2 3 4 5 6 ··· 28 다음 반응형