본문 바로가기

알고리즘 설계/내가 보려고 정리하는 문풀

(57)
사과나무(다이아몬드) 사과농장은 N*N 격자판 이루어짐 (N의 크기는 항상 홀수)각 격자안에는 한 그루의 사과나무격자판안의 사과를 수확할 때 다이아몬드 모양의 격자판만 수확 수확하는 사과의 총 개수를 출력하는 프로그램 작성 만약 N이 5이면 아래 그림과 같이 진한 부분의 사과만 수확수확하는 사과의 총 개수를 출력하는 프로그램 작성첫 줄에 N 입력 받고 두번째 줄 부터 격자판 입력받음 입력예시)510 13 10 12 1512 39 30 23 1111 25 50 53 1519 27 29 37 2719 13 30 13 19 출력예시)379내가 쓴 코드import syssys.stdin = open("input.txt", 'rt')N = int(input())grid = [list(map(int, input().split())) f..
격자판 최대합 N*N의 격자판이 주어지면 각 행의 합, 각 열의 합, 두 대각선의 합 중 가 장 큰 합을 출력.첫 줄에 N 주어지고 두번째 줄부터 N개의 행이 주어짐입력 예시)510 13 10 12 1512 39 30 23 1111 25 50 53 1519 27 29 37 2719 13 30 13 19 출력 예시)155내가 쓴 코드1import syssys.stdin = open("input.txt",'rt')N = int(input())grid = []for _ in range(N): grid.append(list(map(int, input().split())))max = 0tmp = 0#행의 합 계산for i in range(N): tmp = sum(grid[i]) if tmp > max: ..
수들의 합 N개의 수로 된 수열 A[1], A[2], ..., A[N]이 있을 때,이 수열의 i번째 수부터 j번째 수까지의 합 A[i]+A[i+1]+...+A[j-1]+A[j]가 M이 되는 경우의 수를 구하는 프로그램 작성첫 줄에 N 과 M이 주어지고두번째 줄에 수열이 주어짐 입력예시)8 31 2 1 3 1 1 1 2 출력예시)5내가 쓴 코드import syssys.stdin = open("input.txt", 'rt')N, M = map(int, input().split())lst = list(map(int, input().split()))sum = 0cnt = 0for i in range(N): sum = lst[i] if sum == M: cnt += 1 continue ..
두 리스트 합치기 오름차순으로 정렬이 된 두 리스트가 주어지면 두 리스트를 오름차순으로 합쳐 출력하는 프로그램 작성 입력으로 첫번째 리스트 크기받고 리스트1 원소들 주어지고두번쨰 리스트 크기 받고 리스트2 원소들 주어짐 입력예시)31 3 552 3 6 7 9 출력예시)1 2 3 3 5 6 7 9내가 쓴 코드1#입력 전부 받기N = int(input())list1 = list(map(int, input().split()))M = int(input())list2 = list(map(int, input().split()))# 두 리스트 합쳐서 오름차순 정렬result = list1+list2#sort()함수는 None을 리턴하기 때문에 변수에 sort()처리한 무언가를 "대입"할 경우 None이 반환된다는 점을 주의해야 함re..
카드 역배치 1부터 20까지 숫자가 하나씩 쓰인 20장의 카드가 아래 그림과 같이 오름차순으로 한줄로. 각 카드의 위치는 카드 위에 적힌 숫자와 같이 1부터 20까지.구간 [a, b]가 주어지면 위치 a부터 위치 b까지의 카드를 현재의 역순으로.ex)현재 카드가 놓인 순서가 위의 그림과 같고 구간이 [5, 10]으로 주어진다면, 위치 5부터 위치 10까지의 카드 5, 6, 7, 8, 9, 10는 역순으로 10, 9, 8, 7, 6, 5로이 상태에서 구간 [9, 13]이 다시 주어진다면, 위치 9부터 위치 13까지의 카드 6, 5, 11, 12, 13을 역순으로 13, 12, 11, 5, 6으로.오름차순으로 한 줄로 놓여있는 20장의 카드에 대해 10개의 구간이 주어지면, 주어진 구간의 순서대로 위의 규칙에 따라 순서..
숫자만 추출 문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만들고, 만들어진 자연수와 그 자연수의 약수 개수를 출력! 입력예시)g0en2Ts8eSoft 출력예시)286내가 쓴 코드#약수 개수 리턴하는 함수def howMany(n): cnt = 0 for i in range(1,n+1): if n%i == 0: cnt += 1 return cnt#입력받은 문장에서 숫자만 추출해서 리스트에 담기numList = []sentence = input()for x in sentence: if x.isnumeric(): numList.append(x)#숫자만 추출해서 담은 리스트에 담긴 원소들만 빼서 정수형으로 바꾸기num ..
회문 문자열 검사 N개의 문자열 데이터를 입력받아 앞에서 읽을 때나 뒤에서 읽을 때나 같은 경우(회문 문자열) 이면 YES 출력, 회문 문자열이 아니면 NO 출력하는 프로그램 작성단, 회문을 검사할 때 대소문자 구분X 입력예시)5levelmoonabcbasoongooG 출력예시)#1 YES#2 NO#3 YES#4 NO#5 YES내가 쓴 답안import syssys.stdin = open("input.txt", "rt")N = int(input())for i in range(N): word = input() #input()은 한 줄의 입력을 문자열로 반환 #input().split()은 한줄의 입력에서 공백으로 구분된 여러 단어를 리스트로 분리하여 반환 word = word.lower() #대소문..
점수계산 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기로 함1번 문제가 맞는 경우에는 1점으로 계산앞의 문제에 대해서는 답을 틀리다가 답이 맞는 처음 문제는 1점으로 계산연속으로 문제의 답이 맞는 경우, 두 번째 문제는 2점, 세 번째 문제는 3점, ..., K번째 문제는 K점으로 계산틀린 문제는 0점으로 계산 시험문제의 채점 결과가 주어졌을 때, 총 점수를 계산하는 프로그램 작성 입력예제)101 0 1 1 1 0 0 1 1 0 출력예제)10내가 쓴 코드import syssys.stdin = open("input.txt",'rt')N = int(input())grades = list(map(int,input().split()))#map함수는 map객체를 반환한다!score..