본문 바로가기

전체 글12

[python] 14890 - 경사로 https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 정답률 55.699% 난이도 골3 경우의 수 잘 나눠야함(경사로 못치는 경우 잘 생각하기) + 열 검사하기 귀찮아서 입력값을 행과 열 바꿔서 다른 배열에 저장해놓은 뒤, 행 검사 함수에 넣음 코드 설명 ※ 주의할 점 높이가 1 감소하는 경우 중 같은 높이의 블럭이 L개 나오기 전에 라인이 끝날 때 높이가 1 감소하는 경우에서 이미 경사로 놓은 곳에 높이 1 증가하는 경우로 경사로 다시 놓기 (ex. 3 3 2 2 3 3.. 2022. 9. 2.
(기출x)[python] 10825 - 국영수 https://www.acmicpc.net/problem/ 정답률 52.136% 난이도 실4 python3로 제출할 때 input 받는 데에 오래걸려서 시간초과 뜸 -> sys사용하거나 pypy3로 제출 코드 설명 import sys input = sys.stdin.readline N = int(input()) stu = [] for i in range(N): name, kor, eng, math = map(str, input().split()) stu.append([name, int(kor), int(eng), int(math)]) stu.sort(key = lambda x: (-x[1], x[2], -x[3], x[0])) # 내림차순, 오름차순, 내림차순, 오름차순 for i in range(N):.. 2022. 9. 2.
[프로그래머스] 블록 이동하기 - python https://school.programmers.co.kr/learn/courses/30/lessons/60063?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 회전을 같이 생각하는 게 너무 까다로운 문제.. 코드 설명 from collections import deque dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def get_next_pos(pos, board, N): pos1, pos2 = pos (pos1x, pos1y), (pos2x, pos2y) = pos1, pos2 npos = [] #.. 2022. 9. 1.
[python] 16234 - 인구 이동 https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 정답률 36.050% 난이도 골5 80%에서 시간초과 오지게 남.. 최적화된 bfs가 필요 코드 설명 1. 입력 받기 2. bfs 3. 그룹 생성되면 인구 이동 ※ 주의할 점 처음 검사할 때 모든 칸을 다 조사할 필요 x 한 점에서 사방으로 관계를 조사하기 때문에 격자로 검사 두번째 날부터는 전날 그룹생성되었던 점들만 검사(숫자 바뀐 부분만 검사하면 되니까) visited에 date.. 2022. 8. 31.
(기출x)[python] 18428 - 감시 피하기 https://www.acmicpc.net/problem/18428 18428번: 감시 피하기 NxN 크기의 복도가 있다. 복도는 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 선생님, 학생, 혹은 장애물이 위치할 수 있다. 현재 몇 명의 학생들은 수업시간에 몰래 복도로 빠져나왔는데, 복 www.acmicpc.net 정답률 32.032% 난이도 골5 코드 설명 1. 입력 받기 2. 선생님, 학생, 장애물 후보 좌표 3. 장애물 조합별로 체크 4. 체크 ※ 주의할 점 입력받는 동시에 좌표 저장해놓으면 시간 절약 왜 안되는지 모르겠을 땐 출력이 "YES", "NO"인지도 확인해보기.. dx = [-1, 0, 0, 1] dy = [0, -1, 1, 0] # 4. 체크 def check(oa): for x,.. 2022. 8. 30.
[python] 14888 - 연산자 끼워넣기 https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 정답률 49.466% 난이도 실1 코드 설명 1. 입력 받기 2. dfs 구현 3. 나눗셈 구현 ※ 주의할 점 나눗셈 구현시 음수, 양수 나눠서 구현 dfs구현시 주의사항들(아래 case에 영향받지 않게 인수에서 계산한다던지) # 2. dfs 구현 def count(depth, res, plus, minus, multi, div): globa.. 2022. 8. 30.
[python] 17779 - 게리맨더링 2 https://www.acmicpc.net/problem/17779 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름 www.acmicpc.net 정답률 56.270% 난이도 골4 왜 정답률이 높은지 모르겠음 범위 설정이나 예외처리가 까다롭..ㅠ 코드 설명 1. 입력 받기 2. 각 x, y, d1, d2마다 인구 수 계산 3. 인구 경계 4. 정답 갱신 ※ 주의할 점 여러 조건들 이용해서 for문 반복횟수 줄이기 정답 초기값은 문제 조건에서 최대로 나올 수 있는 경우 간단하게 계산(N=20, 전부 100명인데 전부 1번 선거구) 5번 선거구의 경.. 2022. 8. 29.
[python] 19236 - 청소년 상어 https://www.acmicpc.net/problem/19236 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net 정답률 63.295% 난이도 골2 물고기 정보를 따로 저장해놓는게 시간 절약 코드 설명 1. 입력 받기 2. 물고기 이동 3. 상어 이동 및 물고기 냠냠 ※ 주의할 점 fish는 물고기 위치 정보 global_map은 위치별 (물고기 크기, 방향정보) dfs쓸때 서로 영향 주지 않게 fish와 global_map은 copy해서 쓰기 - dfs 다시 불러오고 원위치 잊지 않기 de.. 2022. 8. 27.