본문 바로가기

구현8

[백준 1235] 학생 번호 - python 💡문제 분석 요약이번에는 학생들을 더욱 효율적으로 관리하기 위해 학생마다 고유한 학생 번호를 부여하기로 하였다. 학생 번호는 0부터 9 사이의 숫자로 이루어진 문자열로, 모든 학생들의 학생 번호는 서로 다르지만 그 길이는 모두 같다.학생들의 번호를 부여해 놓고 보니, 김진영 조교는 어쩌면 번호가 지나치게 긴 것은 아닌가 싶은 생각이 들었다. 예를 들어 아래와 같은 7자리의 학생 번호를 보자.이름번호오민식1212345김형택1212356이동호0033445이처럼 학생 번호를 굳이 7자리로 하지 않고, 뒤에서 세 자리만을 추려서 남겨 놓아도 모든 학생들의 학생 번호를 서로 다르게 만들 수 있다.이름번호오민식345김형택356이동호445하지만 세 자리보다 적게 남겨 놓아서는 모든 학생들의 학생 번호를 서로 다르게.. 2025. 1. 16.
[백준 1337] 올바른 배열 - python 💡문제 분석 요약올바른 배열이란 어떤 배열 속에 있는 원소 중 5개가 연속적인 것을 말한다. (연속적인 것이란 5개의 수를 정렬했을 때, 인접한 수의 차이가 1인 것을 말한다.)예를 들어 배열 {6, 1, 9, 5, 7, 15, 8}은 올바른 배열이다. 왜냐하면 이 배열 속의 원소인 5, 6, 7, 8, 9가 연속이기 때문이다.배열이 주어지면, 이 배열이 올바른 배열이 되게 하기 위해서 추가되어야 할 원소의 개수를 출력하는 프로그램을 작성하시오.💡알고리즘 설계배열을 정렬배열을 순회하며, 해당 원소에서 +5까지 확인+5 내부에 있는 원소가 arr에 존재하지 않으면 count+=1count값과 answer값 중 작은 것을 answer에 저장하고 출력💡코드N = int(input())arr = [int(.. 2025. 1. 11.
[백준 2669번] 직사각형 네개의 합집합의 면적 구하기 - python, js https://www.acmicpc.net/problem/2669 💡문제 분석 요약평면에 네 개의 직사각형이 놓여 있는데 그 밑변은 모두 가로축에 평행하다. 이 네 개의 직사각형들은 서로 떨어져 있을 수도 있고, 겹쳐 있을 수도 있고, 하나가 다른 하나를 포함할 수도 있으며, 변이나 꼭짓점이 겹칠 수도 있다.이 직사각형들이 차지하는 면적을 구하는 프로그램을 작성하시오.입력입력은 네 줄이며, 각 줄은 직사각형의 위치를 나타내는 네 개의 정수로 주어진다. 첫 번째와 두 번째의 정수는 사각형의 왼쪽 아래 꼭짓점의 x좌표, y좌표이고 세 번째와 네 번째의 정수는 사각형의 오른쪽 위 꼭짓점의 x좌표, y좌표이다. 모든 x좌표와 y좌표는 1이상이고 100이하인 정수이다.출력첫 줄에 네개의 직사각형이 차지하는 면적.. 2024. 12. 30.
[백준 21608번] 상어 초등학교 - 파이썬 https://www.acmicpc.net/problem/21608💡문제 분석 요약상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호가 매겨져 있고, (r, c)는 r행 c열을 의미한다. 교실의 가장 왼쪽 윗 칸은 (1, 1)이고, 가장 오른쪽 아랫 칸은 (N, N)이다.선생님은 학생의 순서를 정했고, 각 학생이 좋아하는 학생 4명도 모두 조사했다. 이제 다음과 같은 규칙을 이용해 정해진 순서대로 학생의 자리를 정하려고 한다. 한 칸에는 학생 한 명의 자리만 있을 수 있고, |r1 - r2| + |c1 - c2| = 1을 만족하는 두 칸이 (r1, c1)과 .. 2024. 6. 21.
[백준 18111번] 마인크래프트 - 파이썬 https://www.acmicpc.net/problem/18111💡문제 분석 요약  팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 땅을 파거나 집을 지을 수 있는 게임이다.목재를 충분히 모은 lvalue는 집을 짓기로 하였다. 하지만 고르지 않은 땅에는 집을 지을 수 없기 때문에 땅의 높이를 모두 동일하게 만드는 ‘땅 고르기’ 작업을 해야 한다.lvalue는 세로 N, 가로 M 크기의 집터를 골랐다. 집터 맨 왼쪽 위의 좌표는 (0, 0)이다. 우리의 목적은 이 집터 내의 땅의 높이를 일정하게 바꾸는 것이다. 우리는 다음과 같은 두 종류의 작업을 할 수 있다.. 2024. 6. 7.
[백준 1783번] 병든 나이트 - 파이썬 https://www.acmicpc.net/problem/1783💡문제 분석 요약병든 나이트가 N × M 크기 체스판의 가장 왼쪽아래 칸에 위치해 있다. 병든 나이트는 건강한 보통 체스의 나이트와 다르게 4가지로만 움직일 수 있다.2칸 위로, 1칸 오른쪽1칸 위로, 2칸 오른쪽1칸 아래로, 2칸 오른쪽2칸 아래로, 1칸 오른쪽병든 나이트는 여행을 시작하려고 하고, 여행을 하면서 방문한 칸의 수를 최대로 하려고 한다. 병든 나이트의 이동 횟수가 4번보다 적지 않다면, 이동 방법을 모두 한 번씩 사용해야 한다. 이동 횟수가 4번보다 적은 경우(방문한 칸이 5개 미만)에는 이동 방법에 대한 제약이 없다.체스판의 크기가 주어졌을 때, 병든 나이트가 여행에서 방문할 수 있는 칸의 최대 개수를 구해보자.💡알고리.. 2024. 5. 11.
[백준 13335번] 트럭 - 파이썬 https://www.acmicpc.net/problem/13335 13335번: 트럭 입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트 www.acmicpc.net 💡문제 분석 요약 강을 가로지르는 하나의 차선으로 된 다리가 하나 있다. 이 다리를 n 개의 트럭이 건너가려고 한다. 트럭의 순서는 바꿀 수 없으며, 트럭의 무게는 서로 같지 않을 수 있다. 다리 위에는 단지 w 대의 트럭만 동시에 올라갈 수 있다. 다리의 길이는 w 단위길이(unit distance)이며, 각 트럭들은 하나의 단위시간(unit ti.. 2024. 4. 7.
[백준 1913번] 달팽이 - 파이썬 https://www.acmicpc.net/problem/1913 💡문제 분석 요약 구현 문제이다. 달팽이가 배열의 가운데서 시작해, 시계방향으로 숫자를 1씩 키우며 움직인다. 최종적으로 완성된 배열과 같이 입력받은 숫자의 좌표를 출력하라. 💡알고리즘 설계 1. 달팽이가 지나갈 배열을 0으로 초기화한다. 2. 달팽이가 (0,0) 위치에서 N*N을 저장하며 시작한다. 3. 숫자를 하나씩 줄이며, 다음 위치가 배열의 안이며, 다음 위치의 배열에 0이 저장되어 있다면 그 위치로 이동하여 줄어든 숫자를 저장한다. 4. 다음 위치가 배열 밖이거나 이미 다른 숫자로 채워져 있다면 방향을 바꾸고, 다시 이동한다. 방향은 시계 반대 방향으로 변경한다. 💡코드 import sys input = sys.stdin.read.. 2024. 3. 9.