Total
마구간 정하기 (이분탐색, 결정 알고리즘)
문제 N개의 마구간이 수직선상에 있습니다. 각 마구간은 x1, x2, x3, ......, xN의 좌표 현수는 C마리의 말을 가지고 있는데, 이 말들은 서로 가까이 있는 것을 좋아하지 않습니다. 각 마구간에는 한 마리의 말만 넣을 수 있고, 가장 가까운 두 말의 거리가 최대가 되게 말을 마구간에 배치하고 싶습니다. C마리의 말을 N개의 마구간에 배치했을 때 가장 가까운 두 말의 거리가 최대가 되는 그 최대 값을 출력 자연수 N(3
뮤직비디오 (이분탐색, 결정 알고리즘)
문제 DVD에는 총 N개의 곡이 들어가는데, DVD에 녹화할 때에는 순서가 그대로 유지되어야 한다. 한 노래를 쪼개서 두 개의 DVD에 녹화하면 안된다. M개의 DVD에 모든 동영상을 녹화하기로 하였다. DVD의 용량 크기는 (녹화 가능한 길이) 최소 DVD의 용량은 같은 크기여야함 곡 수 N(1≤N≤1,000), DVD 개수 M(1≤M≤N) 다음 줄에는 부른 순서대로 부른 곡의 길이(자연수, 분단위) 부른 곡의 길이는 10,000분을 넘지 않는다고 가정 DVD의 최소 용량 크기를 출력 9 3 1 2 3 4 5 6 7 8 9 설명 : 3개의 DVD용량이 17분짜리이면 (1, 2, 3, 4, 5) (6, 7), (8, 9) 이렇게 3개의 DVD로 녹음을 할 수 있다. 17분 용량보다 작은 용량으로는 3개의..
[1654] 랜선 자르기(이분탐색, 결정 알고리즘)
1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 분석 이분 탐색 문제 임의의 N개의 숫자가 입력으로 주어집니다. N개의 수를 오름차순으로 정렬한 다음 N개의 수 중 한 개의 수인 M이 주어지면 이분검색으로 M이 정렬된 상태에서 몇 번째에 있는지 출력 자연수 karla.tistory.com 풀이 import sys input=sys.stdin.readline k,n=map(int,input().split()) a=[] for _ in range(k): a.append(int(inpu..
이분 탐색
문제 임의의 N개의 숫자가 입력으로 주어집니다. N개의 수를 오름차순으로 정렬한 다음 N개의 수 중 한 개의 수인 M이 주어지면 이분검색으로 M이 정렬된 상태에서 몇 번째에 있는지 출력 자연수 N(3
격자판 회문 수
문제 1부터 9까지의 자연수로 채워진 7*7 격자 격자판 위에서 가로방향 또는 세로방향으로 길이 5자리 회문 수가 몇 개 있는지 출력 빨간색처럼 구부러진 경우(87178)는 회문수로 간주하지 않습니다. 2 4 1 5 3 2 6 3 5 1 8 7 1 7 8 3 2 7 1 3 8 6 1 2 3 2 1 1 1 3 1 3 5 3 2 1 1 2 5 6 5 2 1 2 2 2 2 1 5 분석 회문 문자열 검사 문제 앞에서 읽을 때나 뒤에서 읽을 때나 같은 경우(회문 문자열)이면 YES를 출력하고 회문 문자열이 아니면 NO를 출력 첫 줄에 정수 N(1 karla.tistory.com 풀이 import sys input=sys.stdin.readline a=[list(map(int,input().split())) for..
스도쿠 검사 (행, 열, 3*3 체크)
문제 완성된 9×9 크기의 스도쿠가 정확하게 풀었으면 “YES", 잘 못 풀었으면 ”NO"를 출력 1 4 3 6 2 8 5 7 9 5 7 2 1 3 9 4 6 8 9 8 6 7 5 4 2 3 1 3 9 1 5 4 2 7 8 6 4 6 8 9 1 7 3 5 2 7 2 5 8 6 3 9 1 4 2 3 7 4 8 1 6 9 5 6 1 9 2 7 5 8 4 3 8 5 4 3 9 6 1 2 7 풀이 import sys input=sys.stdin.readline def check(a): for i in range(9): ch1 = [0] * 10 # 행 체크 ch2 = [0] * 10 # 열 체크 for j in range(9): # 1-9까지 숫자가 있는 경우 방문 처리 ch1[a[i][j]] = 1 ch2[a..
봉우리 (네방향 탐색, 이중 for 문, all 함수)
문제 지도 정보가 N*N(1~50) 격자판에 주어집니다. 각 격자에는 그 지역의 높이가 쓰여있습니다. 각 격자 판의 숫자 중 자신의 상하좌우 숫자보다 큰 숫자는 봉우리 지역입니다. 봉우리 지역이 몇 개 있는 지 격자의 가장자리는 0으로 초기화 되었다고 가정한다. 만약 N=5 이고, 격자판의 숫자가 다음과 같다면 봉우리의 개수는 10개입니다. 5 5 3 7 2 3 3 7 1 6 1 7 2 5 3 4 4 3 6 4 1 8 7 3 5 2 풀이 import sys input=sys.stdin.readline # 격자판 n=int(input()) a=[list(map(int,input().split())) for _ in range(n)] a.insert(0, [0]*n) a.append([0]*n) for x ..
곶감(모래시계, 열 회전)
문제 마당은 N*N 격자판으 로 이루어져 있으며, 현수는 각 격자단위로 말리는 감의 수를 정합니다. 위치에 따라 특정위치의 감은 잘 마르지 않습니다. 격자의 행을 기준으로 왼쪽, 또는 오른쪽으로 회전시켜 위치를 변경 회전명령 정보가 2 0 3이면 2번째 행을 왼쪽으로 3만큼 회전 행번호, 방향 0왼쪽/1오른쪽, 회전 격자 수 M개의 회전명령을 실행하고 난 후 모래시계 모양의 영역의 감 총 개수 출력 N(3
격자판 최대 합
문제 N*N의 격자판이 주어지면 각 행의 합, 각 열의 합, 두 대각선의 합 중 가 장 큰 합을 출력 첫 줄에 자연수 N이 주어진다.(1res: res=sum2 if cross1 > res: res=cross1 if cross2 > res: res=cross2 print(res)
사과나무 (격자탐색, 다이아몬드)
문제 현수의 농장은 N*N 격자판, 각 격자안에는 한 그루의 사과나무가 심어져 있다, N의 크기는 항상 홀수 사과를 수확할 때 다이아몬드 모양의 격자판만 수확하고 나머지 격자안의 사과는 새들을 위해서 남겨놓는다. 입력 첫 줄에 자연수 N(홀수)이 주어진다.(3