[백준 11286번] 파이썬 - 절댓값 힙
http://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net # 조건 배열에 정수 x를 넣는다. 배열에서 절댓값이 가장 작은 값을 출력하고, 그 값을 배열에서 제거 절댓값이 가장 작은 값이 여러 개일 때는, 가장 작은 수를 출력하고, 배열에서 제거 입력에서 0이 주어진 회수만큼 답을 출력한다. 만약 배열이 비어있는 경우에 0이 주어진다면 0을 출력 # 접근 방법 heapq 모듈을 사용해준다. abs를 이용하여 값을 넣어줄껀데 ( abs(..
2022.10.20
[백준 11659] 파이썬 - 구간 합 구하기 4
http://wwww.acmicpc.net/problem/11659 # 조건 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램 작성하시오 첫 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘쨰 줄에는 N개의 수가 주어진다.ㅣ 수는 1,000보다 작거나 같은 자연수 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. # 접근 방법 slicing을 통하여 합을 구해주면 된다. 이 때, slicing의 시작 구간 -1을 해주어야 한다. 위와 같이 하면 시간초과 따라서 누적합을 구해준다. 즉, 처음에 한 번 누적합 리스트를 구해준 후 B까지의 합에서 A-1까지의 합을 빼준다. import sys N, M = map(int, sys.stdin.readli..
2022.10.19
[프로그래머스] 파이썬 - 등굣길
https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 조건 가장 왼쪽 위, 집의 좌표 (1,1) 가장 오른쪽 아래, 학교의 좌표 (m,n) 격자의 크기 m,n과 물이 잠긴 지역의 좌표 담은 2차원 배열 puddles가 매개변수 오른쪽과 아래쪽으로만 움직일 수 있으며 학교까지 갈 수 있는 최단 경로의 개수를 1,000,000,007로 나눈 나머지를 return 하여라 # 접근 방법 현재 칸에 올 수 있는 경로의 수 -> 왼쪽과 위쪽칸의 합과 같다...
2022.10.19
[백준 5525번] 파이썬 - IOIOI
http://www.acmicpc.net/problem/5525 5525번: IOIOI N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 www.acmicpc.net # 조건 N+1개의 I와 N개의 O로 이루어져 있으면서, I와 O가 교대로 나오는 문자열을 Pn 이라고 한다. P1 = IOI, P2 = IOIOI I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 Pn이 몇 군데 포함되어 있는지 구하는 프로그램 작성 1
2022.10.12
[백준 17281번] 파이썬 - ⚾
http://www.acmicpc.net/problem/17281 # 조건 총 N 이닝 동안 게임을 진행 한 이닝에 3아웃 발생하면 이닝 종료 안타: 1 2루타: 2 3루타: 3 홈런: 4 아웃: 0 1번 선수는 무조건 4번 타자로 결정 다른 선수의 타순을 모두 결정해야 하는데 가장 많이 득점하는 타순을 찾고, 그 때의 득점을 출력 다음 이닝이 진행 될 때에는 직전 이닝의 마지막 타자 다음 타순부터 시작한다. # 접근 방법 타순을 세우는 순열을 만들어 줄건데 1~9번이 아닌 2~9번의 타자의 타순을 정해준다. 이후 4번 타자로 고정되어 있는 1번 타자를 slicing을 통하여 가운데 넣어준다. 각 베이스 정보 리스트를 만들어주어 후속 타자의 타격 결과에 따른 조건문을 만들어 준 후 정보를 갱신해주며 득점..
2022.10.11
[백준 5430번] 파이썬 - AC
http://WWW.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net # 조건 AC 언어는 정수 배열에 연산을 하기 위해 만든 언어 R(뒤집기)와 D(버리기) 함수가 존재 R은 배열에 있는 수의 순서를 뒤집는 함수이고, D는 첫 번째 수를 버리는 함수 비어있는데 D를 사용하면 에러 첫줄 tc 개수 T 각 테케의 첫 줄에는 수행할 함수 p (1 popleft와 reverse 사용 또한 비어있는 경우가 있으므로 try, except을 이용해준다. # 시간 초과 import sys sys.stdin = open('input.tx..
2022.10.11
[백준 2667번] 파이썬 - 단지 번호 붙이기
https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net # 조건 정사각형 모양의 지도가 있다. 1은 집이 있는 곳, 0은 집이 없는 곳 연결된 집의 모임의 단지를 정의하는데, 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다 총 단지수를 출력하고 각 단지에 속하는 집의 수를 오름차순으로 출력하라. # 접근 방법 및 solution 델타 함수를 이용한 dfs를 이용하여 연결된 단지를 체크해준다. 방문한 집들의 값을 0으로 변..
2022.10.11
no image
[백준 17406번] 파이썬 - 배열 돌리기4
https://www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net # 조건 크기가 NxM 크기인 배열 A 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미 배열은 회전 연산을 수행할 수 있는데 회전 연산은 (r,c,s) 세 정수로 이루어져있다. 가장 왼쪽 윗 칸이 (r-s, c-s), 가장 오른쪽 아래 칸이 (r+s, c+s)인 정사각형을 시계 방향으로 한 칸씩 돌린다는 의미 예 - 회전 연산 (3,4,2) 회전 연산이..
2022.10.10
no image
[백준 17276번] 파이썬 - 배열 돌리기
https://www.acmicpc.net/problem/17276 17276번: 배열 돌리기 각 테스트 케이스에 대해 회전 연산을 마친 후 배열의 상태를 출력한다. n줄에 걸쳐 각 줄에 n개의 정수를 공백으로 구분하여 출력한다. www.acmicpc.net # 조건 크기가 n x n 인 2차원 정수 배열 X X를 45° 의 배수만큼 시계방향 혹은 반시계방향으로 돌리려고 한다. X를 시계 방향으로 45° 돌리면 아래와 같은 연산이 동시에 X에 적용되어야 한다: X의 주 대각선을 ((1,1), (2,2), …, (n, n)) 가운데 열 ((n+1)/2 번째 열)로 옮긴다. X의 가운데 열을 X의 부 대각선으로 ((n, 1), (n-1, 2), …, (1, n)) 옮긴다. X의 부 대각선을 X의 가운데 행 ..
2022.10.10