목록알고리즘 문제 (57)
성장일기
크로아티아 알파벳 'c=','c-','dz=','d-','lj','nj','s=','z='가 있을 때, 문장이 몇개의 알파벳으로 이루어져 있는지 구하기 import sys al=['c=','c-','dz=','d-','lj','nj','s=','z='] s=sys.stdin.readline().rstrip() for i in al: if i in s: #크로아티아 알파벳이 입력 문자에 있으면 s=s.replace(i,'S') #S로 치환 else: pass print(len(s)) #s의 길이
첫째 줄에 사람 수 n 둘째 줄에 각 사람당 인출시 걸리는 시간 ->최소로 만들기 #첫째 줄에 n(사람 수) #둘째 줄에 각 사람별 걸리는 시간 import sys n=int(sys.stdin.readline().rstrip()) a=list(map(int,sys.stdin.readline().split())) a.sort() #정렬 temp=0 for i in range(n): temp+=a[i] #본인 시간 더해주기 for j in range(n): if i>j and i!=j: #인덱스가 i보다 작다면 temp+=a[j] #앞의 사람 시간 더해주기 else: pass print(temp) 정렬하고 작은수부터 더해주면 해결
듣도 못한 사람 N, 보도 못한 사람 M 듣도 보도 못한 사람을 사전순으로 출력 1. 처음에 for i in li: if i in li2해서 찾았으나 바로 시간초과 -> in 자체가 리스트 순회라 시간이 많이 걸림 2. (아래) 인덱스로 찾아보려 했으나 4% 채점 후 바로 시간초과 import sys n,m=map(int,sys.stdin.readline().split()) #듣n, 보m li=[] li2=[] for i in range(n+m): a=sys.stdin.readline().rstrip() if i
첫번째 링을 한바퀴 돌리면 나머지 링은 몇바퀴 돌아가는지 구하기 기약 분수 형태로 출력 n=int(input()) a=list(map(int,input().split())) def gcd(a,b): #최대공약수 if b==0: return a else: return gcd(b,a%b) for i in range(1,n): if a[0]%a[i]==0: print(f'{a[0]//a[i]}/1') else: print(f'{a[0]//gcd(a[0],a[i])}/{a[i]//gcd(a[0],a[i])}') # 각각을 최대공약수로 나눠서 프린트하기 코드를 조금 더 깔끔하게 만들 수 있을 것 같은데 다시 한번 더 풀어봐야겠다.
첫 줄에 테스트 케이스의 개수, 테스트 케이스의 수가 주어지고 n개의 수가 주어짐 각 테스트케이스마다 가능한 모든 쌍의 GCD 합 구하기 import sys def gcd(a,b): #최대공약수 함수(유클리드 호제법) if b==0: return a else: return gcd(b,a%b) n=int(sys.stdin.readline().rstrip()) for i in range(n): a=list(map(int,sys.stdin.readline().split())) # 리스트로 받아오기 temp=0 for j in range(1,len(a)): #첫 수는 제외 for k in range(1,len(a)): if j