구현

알고리즘/BOJ

[백준/파이썬] 20055번 컨베이어 벨트 위의 로봇

문제 주소: https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 문제 해석 문제 풀이 문제 설명에 애매한 부분이 존재해서 좀 애먹었다. 먼저 컨테이너 벨트는 위 아래로 존재한다. 시계 방향으로 회전하며, N의 위치에 도달하면 N+1로 2N의 위치에 도달하면 1의 위치로 시계 방향으로 회전한다. -> 이 부분을 보자마자 deque를 떠올려 구현했다. 1번 칸은 "올리는 위치" 이며, N번 칸은 "내리는 위치" 이다. 내리는 위치..

알고리즘/BOJ

[백준/파이썬] 17144번 미세먼지 안녕!

solved.ac Class 4레벨에 속한 문제이다. 문제 주소: https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 문제 해석 확산과 공기청정기를 순서대로 작동하면 된다. 확산은 미세먼지가 존재하는 위치에 상하좌우로 5를 나눈 소수점을 제거한 값만큼 확산된다. 이때 확산할 공간이 없거나 확산 위치에 공기청정기가 존재한다면 확산할 수 없다. 확산이 되는 만큼 감소된다. (확산에서 미세먼지는 항상 보존된다.) 미세먼지의 양이 5미만이라면 확산되지 ..

알고리즘/BOJ

[백준/파이썬] 1107번 리모컨

solved.ac Class 3레벨에 속한 문제이다. 문제 주소: https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 문제 해석 고장난 리모컨 버튼이 주어진다. 누를 수 있는 버튼은 +, - 버튼과 고장나지 않은 숫자 버튼이다. 해당 리모컨을 주어진 채널에 최소로 도달하는 횟수를 구하는 문제이다. 문제 풀이 이동할 수 있는 채널은 500,000 이지만 숫자를 누르고, (+, -) 버튼을 통해 이동하는 경우의 채널은 1,000,000..

알고리즘/BOJ

[백준/파이썬] 14500번 테트로미노

solved.ac Class 3레벨에 속한 문제이다. 문제 주소: https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 문제 해석 그림에서 주어진 블럭의 합이 최대가 되는 수를 구하는 문제이다. 이때 블록은 회전이 가능하므로 해당 경우까지 생각해서 문제를 해결해 주어야 한다. 문제 풀이 모든 경우의 수를 구해주었다. 3가지 방향으로 나누어서 구해주었다. 먼저 누워있는 ㅁㅁㅁㅁ 형태의 도형의 최댓값 ㅁㅁㅁ ㅁㅁㅁ 다음과 같은 2 * 3 형태의 도형의 ..

알고리즘/프로그래머스

[프로그래머스 / 파이썬] 2023 KAKAO BLIND RECRUITMENT 표 병합

프로그래머스에 존재하는 연습 문제이다. 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/150366 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해석 50 x 50 셀을 가진 표에 대해서 UPDATE, MERGE, UNMERGE, PRINT를 수행하고 PRINT 명령을 수행했을 때의 결과를 반환하는 문제이다. 주어진 조건을 잘 읽어가면 구현을 하면 되는 문제이다! 문제 풀이 주어진 조건을 잘 읽어가며 천천히 구현한다면 쉽게 풀 수 있는 문제이다. 영역을 합치는 머지와 초기화 하는 언..

알고리즘/BOJ

[백준/파이썬] 12100번 2048 (Easy)

https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 문제 해석 2048 게임 시스템을 구현해서 5번 이동할 때 최대가 되는 값을 구하는 문제 코드 1. 제출 n = int(input()) arr = [] for _ in range(n): arr.append(list(map(int, input().split()))) def turn(current_arr): size = len(current_arr) temp_arr = [..

알고리즘/BOJ

[백준/파이썬] 16234번 인구 이동

https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 문제 해석 n * n 크기의 땅이 존재한다. 각 땅에는 인구수가 담겨 있다. 각 땅은 하나의 나라이다. 인구 이동이 시작되면 다음과 같은 과정이 일어난다. 인접한 나라, 즉 국경선을 공유하는 나라의 인구수 차이가 주어진 L이상 R이하라면 국경선이 열린다. 같은날 모든 국경선을 열어준다. 국경선이 모두 열리면 인구 이동이 시작된다. 인구 이동은 국경선이 열린 영역의 모든 나라의 인구수..

ddingmin00
'구현' 태그의 글 목록