Programming(106)
-
20210114 // 삼성 SW Expert 아카데미 // 1989
삼성 SW Expert 아카데미 1989번 "초심자의 회문 검사" 문제입니다. TC = int(input()) for tc in range(1, TC+1): string = input() for i in range(len(string)//2): if string[i] == string[len(string)-1-i]: if i == len(string)//2 - 1: print("#%s"%tc, 1) continue else: print("#%s"%tc, 0) break 회문검사 문제다. 회문이란 대칭이 되는 문자열을 회문이라고 한다. 파이썬에서 회문검사는 인덱스 0부터 문자열의 중간 인덱스까지 for 반복문을 돌려서 반대편의 문자와 같으면 continue 문을 이용해서 반복문을 계속 돌리고 예외의 상황이..
2021.01.14 -
20210114 // 삼성 SW Expert 아카데미 // 2001
삼성 SW Expert 아카데미 2001번 "파리 퇴치" 문제입니다. TC = int(input()) for tc in range(1, TC+1): N, M = map(int, input().split()) arr = [list(map(int, input().split())) for _ in range(N)] arr_max = 0 for i in range(N-M+1): for j in range(N-M+1): temp = 0 for k in range(M): temp += sum(arr[i+k][j:j+M]) if arr_max < temp: arr_max = temp print("#%s"%tc, arr_max) N x N 배열을 입력받고 M x M 크기의 파리채를 한 번 내리쳐서 최대한 많은 파리를 ..
2021.01.14 -
20210114 // BaekJoon Online Judge // 1110
백준 알고리즘 BaekJoon Online Judge 1110번 "더하기 사이클" 문제입니다. import sys count = 0 N = int(sys.stdin.readline()) l = N target = 0 while True: count += 1 A, B = N//10, N%10 C = A+B N = B*10 + C%10 if N == l: print("%d"%count) break 해당 수를 10으로 나눈 몫과 나머지를 구해서 더한 값과 구한 나머지에 10을 곱해서 더하면 된다. 이를 반복적으로 작업하고 반복문의 마지막에 원래의 수와 비교하여서 같을 경우는 반복한 수를 출력하고 다를 경우 카운트를 증가시킨다.
2021.01.14 -
20210113 // 삼성 SW Expert 아카데미 // 2005
삼성 SW Expert 아카데미 2005번 "파스칼의 삼각형" 문제입니다. TC = int(input()) for tc in range(1, TC+1): N = int(input()) k = [1] print("#%s"%tc) for i in range(1, N+1): if i == 1: print(k[0]) k.append(1) elif i == 2: for j in range(i): print(k[j], end=" ") print() else: l = [1] for j in range(len(k)-1): l.append(k[j]+k[j+1]) l.append(1) for a in range(len(l)): print(l[a], end=" ") print() k.clear() k.extend(l) 파스..
2021.01.13 -
20210113 // BaekJoon Online Judge // 10951
백준 알고리즘 BaekJoon Online Judge 10951번 "A+B - 4" 문제입니다. while True: try: a, b = map(int, input().split()) print(a+b) except: break while 반복문을 사용하여 두 값을 입력받아 그 값들의 합을 출력하는 문제다. 그런데 보통 무한 반복문 while을 쓸 경우 탈출 조건이 있어야 하는데 여기서의 탈출 조건은 입력이 없을 때이다. 보통 부등호 대소비교나 일치 조건을 주로 많이 쓰는데 이번엔 입력이 없을 때 반복문을 탈출하여 프로그램을 끝내는 방식이다. 이는 try, except문을 이용하여 구할 수 있는데, except는 예외 상황이 발생하였을 때 try안에 구문을 실행하지 않고 except 구문으로 가는 방식..
2021.01.13 -
20210113 // BaekJoon Online Judge //
백준 알고리즘 BaekJoon Online Judge 15552번 "빠른 A+B" 문제입니다. import sys T = int(input()) for i in range(T): a,b = map(int, sys.stdin.readline().split()) print(a+b) 단순히 입력받은 두 수의 합을 출력하는 문제다. 하지만 파이썬의 input()은 빠른 속도의 내장함수가 아니기 때문에 입력받는 값이 많으면 코딩 테스트에서 시간초과가 날 수 있다. 따라서 sys를 import하여 sys.stdin.readline()을 사용하여 입력을 받으면 빠르게 할 수 있다. 다만 sys.stdin.readline()은 개행 문자까지 입력을 받기 때문에 split() 메서드를 사용하여 입력을 받으면 된다.
2021.01.13