Programming(106)
-
SW Expert Academy // 4751
SW Expert Academy 4751번 "다솔이의 다이아몬드 장식" 문제입니다. TC = int(input()) for tc in range(1, TC + 1): N = input() print(".", ".#.."*len(N),sep="") print(".", "#."*2*len(N), sep="") print("#", end="") for e in N: print(".", e, ".#", sep="", end="") print() print(".", "#."*2*len(N), sep="") print(".", ".#.."*len(N),sep="") 이 문제는 각 줄마다 패턴을 잘 파악해야 하는 문제다. 맨 첫 줄과 맨 마지막 줄은 "."로 시작해서 ".#.."를 입력된 글자 수만큼 반복한다. 두 ..
2021.01.21 -
백준 BaekJoon Online Judge // 4948
백준 알고리즘 BaekJoon Online Judge 4948번 "베르트랑 공준" 문제입니다. n=250000 a = [False,False] + [True]*(n-1) primes=[] for i in range(2,n+1): if a[i]: primes.append(i) for j in range(2*i, n+1, i): a[j] = False while True: N = int(input()) if N == 0: break lst = [x for x in primes if N < x
2021.01.21 -
백준 BaekJoon Online Judge // 11653
백준 알고리즘 BaekJoon Online Judge 11653번 "소인수분해" 문제입니다. N = int(input()) i = 2 while N != 1: if N%i == 0: N //= i print(i) else: i += 1 단순하게 생각하면 쉬운 문제라고 생각한다. 소수의 시작은 2이므로 2부터 N을 나누기 시작한다. 나누어 떨어지면 출력하고 나누어 떨어지지 않으면 i를 증가시킨다.
2021.01.21 -
SW Expert Academy // 5162
SW Expert Academy 5162번 "두가지 빵의 딜레마" 문제입니다. TC = int(input()) for tc in range(1, TC + 1): A, B, C = map(int, input().split()) bread = 0 if A = B: bread += C // B print("#%s"%tc, bread) A원의 빵과 B원의 빵이 있는데 C원으로 최대한 많은 빵을 샀을 때 몇개의 빵을 사는지에 대한 문제다. 많은 빵을 사기 위해서는 A, B 중에서 작은 값으로 C를 나누면 된다. 거스름돈을 남겨도 되기 때문에, 즉 딱 맞춰서 살 필요가 없기 때문에 가능한 풀이이다.
2021.01.20 -
백준 BaekJoon Online Judge // 2581
백준 알고리즘 BaekJoon Online Judge 2581번 "소수" 문제입니다. A = int(input()) B = int(input()) a = [False,False] + [True]*(B-1) primes=[] for i in range(2,B+1): if a[i]: primes.append(i) for j in range(2*i, B+1, i): a[j] = False lst = [x for x in primes if x >= A] if len(lst) > 0: print(sum(lst)) print(lst[0]) else: print(-1) 이것도 역시 에라스토테네스의 체를 사용해야 하는 문제다. 수의 범위가 10000이하기 때문에 더욱 더 사용해야 한다. 그리고 만든 소수 리스트를 입력..
2021.01.20 -
백준 BaekJoon Online Judge // 1978
백준 알고리즘 BaekJoon Online Judge 1978번 "소수 찾기" 문제입니다. n=1000 a = [False,False] + [True]*(n-1) primes=[] for i in range(2,n+1): if a[i]: primes.append(i) for j in range(2*i, n+1, i): a[j] = False N = int(input()) lst = list(map(int, input().split())) cnt = 0 for ele in lst: if ele in primes: cnt += 1 print(cnt) 수들을 입력받고 그 중 소수의 개수를 찾는 문제다. 소수임을 판별하는 문제는 굉장히 많지만 소수를 판별하는 대상의 수가 1000정도가 된다면 나는 에라스토테네스..
2021.01.20