[진법 변환2]-11005번 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net My answer import sys import string tmp=list(map(int,sys.stdin.readline().split())) upper=[j for j in string.ascii_uppercase] table,result=dict(),"" for i in range(10,36): table[i]=upper[i-10] while(tmp[0]!=0): a=tmp[0]%tmp[1] tmp[0]=tmp[0]//t..
코딩테스트/백준[Python]
백준 파이썬 코딩테스트 문제 풀이[GCD 합]-9613번 9613번: GCD 합 첫째 줄에 테스트 케이스의 개수 t (1 ≤ t ≤ 100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있다. 각 테스트 케이스는 수의 개수 n (1 < n ≤ 100)가 주어지고, 다음에는 n개의 수가 주어진 www.acmicpc.net My answer import sys import itertools n,sums=int(input()),0 for i in range(n): tmp=list(map(int,sys.stdin.readline().split())) for j in itertools.combinations(tmp[1:], 2): a,b=max(j[0],j[1]),min(j[0],j[1]) while(b!=0): a=a%b a,b=b,a ..
[최대공약수]-1850번 1850번: 최대공약수 모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오. 예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A www.acmicpc.net Another answer import sys a,b=map(int,sys.stdin.readline().split()) if(b>a): a,b=b,a while(b!=0): a=a%b a,b=b,a print(a*'1') 더보기 우선 이 문제는 그냥 최대공약수 문제가 아니었다. 입력받은숫자만큼의 1로 구성된 두 수의 최대공약수를 구하는 문제였는데, 처음에는 예제만 보고 두 1로구성된숫자들의 1의개수의 차이 즉 맨처..
[최소공배수]-1934번 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net My answer import sys n=int(input()) for i in range(n): a,b=map(int,sys.stdin.readline().split()) c=a*b while(b!=0): if(b>a): a,b=b,a a=a%b a,b=b,a print(c//a) Another answer import math for _ in[0]*int(input()): print(math.lcm(*map(int..
[요세푸스 문제]-1158번 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net My answer import sys n,k=map(int,sys.stdin.readline().split()) idx,tmp=0,[] que,que2=[i for i in range(n,0,-1)],[] while(1): if(que==[]): if(que2==[]): break que,que2=que2,que que=list(reversed(que)) if(idx!=k-1): que2.append(que[-1]) que.pop() idx+=1 elif(idx==k-1): tmp.append(que[-1]) que.pop(..
[에디터]-1406번 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net My answer-시간초과 import sys word,n=input(),int(input()) loc=len(word) for i in range(n): tmp=sys.stdin.readline().rstrip().split() if(tmp[0]=='L'): if(loc!=0):loc-=1 elif(tmp[0]=='D'): if(loc!=len(word)):loc+=1 elif(tmp[0]=='B'): if(loc!=0): word=word..