목록전체 글 (43)
코딩하는 베어브릭
*이 풀이는 인프런: 파이썬 알고리즘 문제풀이 강좌에 기반하였습니다. 내 풀이 1. 문제에 대한 점수를 계산하기 위해서는 이전 점수가 필요하기 때문에 score배열을 생성해서 이전 점수에 접근할 수 있도록 하고, score[0]의 값을 먼저 처리한다. 2. 현재 채점결과가 1인데 이전 채점결과가 0인 경우와 이전 채점결과가 1인 경우로 나누어서 경우를 처리한다. import sys #sys.stdin=open("input.txt","rt") n = int(input()) arr= list(map(int, input().split())) score=[0]*n if arr[0]==1: score[0]=1 for i in range(n): if arr[i-1]==0 and arr[i]==1: score[i]=..
*이 풀이는 인프런: 파이썬 알고리즘 문제풀이 강좌에 기반하였습니다. 내 풀이 1. 테스트 케이스만큼 반복문을 돌려서 입력을 받는다. 2. if문을 통해 세 개의 숫자가 같은 경우, 두 개의 숫자가 같은 경우, 모두 다른 경우로 나눠서 상금을 계산한다. 3. 각 사람의 상금을 result배열에 저장하고, 가장 높은 상금을 구한다. import sys #sys.stdin=open("input.txt","rt") n = int(input()) result=[] for i in range(n): arr = list(map(int, input().split())) if arr[0]==arr[1] and arr[0]==arr[2] and arr[1]==arr[2]: res=10000+arr[0]*1000 elif..
*이 풀이는 인프런: 파이썬 알고리즘 문제풀이 강좌에 기반하였습니다. 내 풀이 1. 입력 값을 정수가 아닌 문자열로 받고, 내장함수 strip( )를 이용해 문자 양끝의 0을 제거한다. 2. 그리고 슬라이스 기능을 통해 역순으로 문자열을 배치한 후, 정수로 변환시킨다. 3. 소수인지 판별하기 위해서 약수의 개수가 2개인지 확인한다. import sys #sys.stdin=open("input.txt","rt") def reverse(x): x=x.strip('0') x=int(x[::-1]) return x def isPrime(x): cnt=0 for i in range(1,x+1): if x%i==0: cnt+=1 if cnt==2: print(x, end=' ') n = int(input()) ar..
*이 풀이는 인프런: 파이썬 알고리즘 문제풀이 강좌에 기반하였습니다. 내 풀이 (제한시간 초과) 1. for문을 이용해 각 숫자의 약수가 총 몇개인지 알아본다. 2. 소수는 약수가 1과 자기자신이므로 2개만 존재한다. 따라서 약수가 2개인 숫자라면 소수이기때문에 결과 값 res를 1증가시킨다. import sys #sys.stdin=open("input.txt","rt") n = int(input()) res=0 for i in range(2,n+1): cnt=0 for j in range(1,i+1): if i%j==0: cnt+=1 if cnt==2: res +=1 print(res) 강사님 풀이 import sys sys.stdin=open("input.txt","rt") n = int(input(..
*이 풀이는 인프런: 파이썬 알고리즘 문제풀이 강좌에 기반하였습니다. 내 풀이 1. 인자를 10으로 나눔으로써 나오는 나머지를 통해 자릿 수를 구한다. 2. while문을 이용해서 각 자릿 수를 모두 구한다. 3. for문을 통해 입력받은 숫자들의 각 자릿 수 합을 구하고, 각 값들을 비교함으로써 가장 높은 합을 가진 숫자를 구한다. import sys #sys.stdin=open("input.txt", "r") t= int(input()) arr=list(map(int, input().split())) def digit_sum(x): sum=0 while True: digit = x%10 x = x//10 sum+=digit if x < 10: return sum+x max = 0 for x in ar..
*이 풀이는 인프런: 파이썬 알고리즘 문제풀이 강좌에 기반하였습니다. 내 풀이 1. 두 개의 주사위 눈의 합 모두 구하기 2. 최소 눈의 합 2부터 가장 큰 눈의 합까지 각 빈도수 구하기 3. 최대 빈도 수를 가진 눈의 합 구하기 (조건문을 통해 최대 빈도수를 갱신하면서 res[ ]배열도 갱신) import sys #sys.stdin=open("input.txt","rt") n, m = map(int, input().split()) sum=[] for i in range(1,n+1): for j in range(1, m+1): sum.append(i+j) maxSum = max(sum) maxFreq=0 res=[0] for i in range(2, maxSum+1): cnt = sum.count(i) ..