📌 지도 정보가 N*N 격자판에 주어집니다. 각 격자에는 그 지역의 높이가 쓰여있습니다. 각 격자 판의 숫자 중 자신의 상하좌우 숫자보다 큰 숫자는 봉우리 지역입니다. 봉우리 지역이 몇 개 있는 지 알아내는 프로그램을 작성하세요. 격자의 가장자리는 0으로 초기화 되었다고 가정한다. 만약 N=5 이고, 격자판의 숫자가 다음과 같다면 봉우리의 개수는 10개입니다. 📌 input 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 📍 1: 주어진 matrix 가장자리를 어떻게 0으로 초기화 할 것인가? 2: 상하좌우 숫자와 자신을 어떻게 비교할 것인가? ✔️ 내가 짠 코드 import sys sys.stdin=open("input.txt", "r") n=int(inpu..
분류 전체보기
📌 현수는 곳감을 만들기 위해 감을 깍아 마당에 말리고 있습니다. 현수의 마당은 N*N 격자판으 로 이루어져 있으며, 현수는 각 격자단위로 말리는 감의 수를 정합니다. 그런데 해의 위치에 따라 특정위치의 감은 잘 마르지 않습니다. 그래서 현수는 격자의 행을 기준으로 왼쪽, 또는 오른쪽으로 회전시켜 위치를 변경해 모든 감이 잘 마르게 합니다. 만약 회전명령 정보가 2 0 3이면 2번째 행을 왼쪽으로 3만큼 아래 그림처럼 회전시키는 명령 입니다. index 0: 행 index 1: 0(왼쪽) 1(오른쪽) index 2: 이동 횟수 ex ) 203 일 경우, 12 39 30 23 11 행을 왼쪽으로 3만큼 회전한다. 23 11 12 39 30이 된다. 📌 input 5 10 13 10 12 15 12 39 3..
📌 N개의 수로 된 수열 A[1], A[2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i]+A[i+1]+…+A[j-1]+A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오. 8 3 #수열 개수, 합의 결과 1 2 1 3 1 1 1 2 ✔️ code import sys sys.stdin=open("input.txt", "r") #수열 개수, 합의 결과 n, m=map(int, input().split()) A=list(map(int, input().split())) count=0 for i in range(n): if A[i]==m: count+=1 for j in range(i+1, n): if sum(A[i:j+1])==m: ..

📌 오름차순으로 정렬이 된 두 리스트가 주어지면 두 리스트를 오름차순으로 합쳐 출력하는 프로 그램을 작성하세요. 3 #길이 1 3 5 #value 5 #길이 2 3 6 7 9 #value ✔️ code import sys sys.stdin=open("input.txt", "r") n=int(input()) list_n=list(map(int, input().split())) m=int(input()) list_m=list(map(int, input().split())) #list_m value를 list_n에 추가 for i in list_m: list_n.append(i) #정렬 list_n.sort() print(list_n) >>> 코드가 짧고 단순해서 좋아했는데 좋..
📌 총 10개의 줄에 걸쳐 한 줄에 하나씩 10개의 구간이 주어진다. i번째 줄에는 i번째 구간의 시 작 위치 ai와 끝 위치 bi가 차례대로 주어진다. 이때 두 값의 범위는 1 ≤ ai ≤ bi ≤ 20이다. 1부터 20까지 오름차순으로 놓인 카드들에 대해, 입력으로 주어진 10개의 구간 순서대로 뒤집는 작업을 했을 때 마지막 카드들의 배치를 한 줄에 출력한다. 5 10 9 13 1 2 3 4 5 6 1 2 3 4 5 6 1 20 1 20 ✔️ code import sys sys.stdin=open("input.txt", "r") card=[] #1~20 카드 리스트 만들기 for i in range(1, 21): card.append(i) for i in range(1..
📌 문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만듭니다. 만들어진 자연수와 그 자연수의 약수 개수를 출력합니다. 만약 “t0e0a1c2h0er”에서 숫자만 추출하면 0, 0, 1, 2, 0이고 이것을 자연수를 만들면 120이 됩니다. 즉 첫 자리 0은 자연수화 할 때 무시합니다. 출력은 120를 출력하고, 다음 줄에 120 의 약수의 개수를 출력하면 됩니다. 추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다. g0en2Ts8eSoft ✔️ code import sys sys.stdin=open("input.txt", "r") s=input() n='' count=0 #약수 개수 for i in s: if i >= ..
📌 N개의 문자열 데이터를 입력받아 앞에서 읽을 때나 뒤에서 읽을 때나 같은 경우(회문 문자열) 이면 YES를 출력하고 회문 문자열이 아니면 NO를 출력하는 프로그램을 작성한다. 단 회문을 검사할 때 대소문자를 구분하지 않습니다. 5 level moon abcba soon gooG ✔️ code import sys sys.stdin=open("input.txt", "r") n=int(input()) for i in range(n): s=input().upper() #대소문자를 구분하지 않는다. #reversed(s) 요소들을 join으로 다시 연결하여 문자열로 합쳐준다. reverse_s=''.join(reversed(s)) if s==reverse_s: print('#%..
📌 OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기 로 하였다. 1번 문제가 맞는 경우에는 1점으로 계산한다. 앞의 문제에 대해서는 답을 틀리다가 답이 맞는 처음 문제는 1점으로 계산한다. 또한, 연속으로 문제의 답이 맞는 경우에서 두 번째 문제는 2점, 세 번째 문제는 3점, ..., K번째 문제는 K점으로 계산한다. 틀린 문제는 0점으로 계산한다. 예를 들어, 아래와 같이 10 개의 OX 문제에서 답이 맞은 문제의 경우에는 1로 표시하고, 틀린 경 우에는 0으로 표시하였을 때, 점수 계산은 아래 표와 같이 계산되어, 총 점수는 1+1+2+3+1+2=10 점이다...
📌 N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 수를 출력하는 프로그램을 작성하세요. 예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출력 한다. 단 910를 뒤집으면 19로 숫자화 해야 한다. 첫 자리부터의 연속된 0은 무시한다. 뒤집는 함수인 def reverse(x) 와 소수인지를 확인하는 함수 def isPrime(x)를 반드시 작성하 여 프로그래밍 한다. ex ) 32 가 입력되면, reverse(32) 로 23으로 만들어주고, isPrime(reverse(32)) 로 소수라면 True, 아니면 False를 return 해준다. ✔️ 내가 짠 코드 import sys sys.stdin=open("input.txt", "r") n=int(inp..
📌 자연수 N이 입력되면 1부터 N까지의 소수의 개수를 출력하는 프로그램을 작성하세요. 만약 20이 입력되면 1부터 20까지의 소수는 2, 3, 5, 7, 11, 13, 17, 19로 총 8개입니다. ✔️ 내가 짠 코드 import sys sys.stdin=open("input.txt", "r") n=int(input()) count=0 for i in range(2, n+1): output=[] for j in range(1, i+1): if i % j == 0: output.append(j) if len(output) == 2: count += 1 print(count) >>> 2의 배수와 제곱근을 제외시켜야하나 라고 고민할 것이 아니었다. 실행시켜보니 15, 49 ... 조건문만 복잡해졌다. 1 ~..