전체 글
1748번 파이썬
import sys input = sys.stdin.readline n = int(input()) a=len(str(n)) cnt=0 for i in range(a): cnt+=i*(10**i-10**(i-1)) cnt+=(n-10**(a-1)+1)*a print(int(cnt))
9095번 파이썬
import sys input = sys.stdin.readline cnt=[] def solution(n,num): if n ==num: cnt.append(1) return elif n
14500번 파이썬
아래 방법은 재귀를 이용해서 그런지 시간이나 메모리 소요가 커서 다른 방법을 생각해봐야함!(백준 pypy로 하면 맞춘걸로 나오긴 함) import sys input = sys.stdin.readline N,M = map(int,input().split()) mat=[list(map(int,input().split())) for _ in range(N)] res=set() def row_p(ary,num,cnt,row,col,n,m): if row < n: if [row,col] in ary: return num+=mat[row][col] ary.append([row,col]) solution(ary,num,cnt+1,row,col,n,m) ary.remove([row,col]) else: return r..
6064번 파이썬
import sys input = sys.stdin.readline t = int(input()) for _ in range(t): m,n,x,y=map(int,input().split()) found = False while x k대신에 x에 m을 계속 더한 값을 넣어보고 그 값에 y를 빼줄 때 n으로 나눠서 0이면 해를 구할 수 있음 (x의 범위는 최대한 크게 m*n으로 설정!) import sys input = sys.stdin.readline t = int(input()) for _ in range(t): m,n,x,y=map(int,input().split()) x_=0 y_=0 year=0 item=[[-1,-1]] while True: if x_ < m: x_+=1 else: x_=1 if ..
1107번 파이썬
import sys input = sys.stdin.readline N = int(input()) M = int(input()) res = abs(100-N) if M: c_err = input().split() else: c_err=[] for num in range(1000001): solved=True for c in str(num): if c in c_err: solved=False break if solved: res=min(res,len(str(num))+abs(N-num)) print(res)
1476번 파이썬
import sys input = sys.stdin.readline E,S,M = map(int,input().split()) se,ss,sm,year=0,0,0,0 while 1: se+=1 ss+=1 sm+=1 year+=1 if se>15: se=1 if ss>28: ss=1 if sm>19: sm=1 if se==E and ss==S and sm==M: print(year) break
3085번 파이썬
두번이나 문제를 잘못보고 풀어서 여러 번 풀어서 나온 답ㅎ!,,, 문제의 의도는 1. 인접한 두칸을 고름 2. 두칸의 사탕을 바꿈 3. 사탕 배열(행, 열) 중 연속으로 긴 사탕이 있는 사탕을 모두 먹음 ex( pyyyp인 max인 경우 y세개를 먹고 최대 사탕 개수는 3개가 됨) copy를 안쓰고 다시 원래 자리로 원위치 시키는 방법도 있지만 copy하는 방법으로 푸니까 코드가 길어짐,, copy는 copy 모듈을 이용해서 shallow copy가 아닌 deepcopy로 구현(다른 copy인 경우 idx 값을 바꾸면 복사한 ary 값도 바뀌기 때문에) import sys input = sys.stdin.readline import copy def counting(mat,n): res=0 for i in..
2309번 파이썬
import sys input = sys.stdin.readline ary=[int(input()) for i in range(9)] found = False for i in range(8): if found: break for j in range(i+1,9): sum=0 for item in ary: sum+=item a=ary[i] b=ary[j] sum-=(a+b) if sum ==100: ary.remove(a) ary.remove(b) ary.sort() for item in ary: print(item) found = True break
6588번 파이썬
def filtering(n): lists=[True] * n for i in range(2,int(n**0.5)+1): if lists[i]: for j in range(i*2,n,i): lists[j]=False return [i for i in range(2,n) if lists[i]] # 처음엔 에라토스테네스의 체를 이용해서 n보다 작은 소수의 배열을 반환하는 함수를 만들려 했지만 매번 새로 만들어서 그런지 시간 초과가 계속 뜸 따라서 n의 max인 1000000보다 작은 소수 배열을 미리 만들어서 사용 import sys input = sys.stdin.readline num = 1000001 lists=[True] * num for i in range(2,int(num**0.5)+1): if ..
13458번 파이썬
import sys input = sys.stdin.readline N=int(input()) A=list(map(int,input().split())) B,C=map(int,input().split()) sum=N for num in A: num -=B if num < 0: # 예외처리를 해주지 않으면 나중에 음수 값이 나오는 경우가 있을 수도 있음. continue if num % C==0: sum+=num//C else: sum+=num//C+1 print(sum)