알고리즘/SWEA 26

[Python] SWEA D2 1959번 - 두 개의 숫자열

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이 문제는 길이가 짧은 숫자열과 긴 숫자열을 짧은 숫자열의 길이만큼 곱한 후 더해주는 문제입니다. - 저는 m을 긴 숫자열(b), n을 짧은 숫자열(a)로 설정했습니다. - 그 후에는 b가 a의 시작부터 끝까지 마주보는 경우를 구하기 위해 최대 횟수인 m - n + 1만큼 for문이 반복되도록 했습니다. 만약 n = 3 , m = 5라면 3회 반복하는 것입니다. - 이후 마주보는 값을 곱하여 더한 값을 구한 뒤, 최대값을 찾습니다. T = int(input()) for t in range(1, T + 1): n, m = map(int, input().split(..

알고리즘/SWEA 2022.06.02

[Python] SWEA D2 1989번 - 초심자의 회문 검사

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이 문제는 슬라이싱을 이용해서 간단하게 풀어줄 수 있는데요. 문자열[:] 또는 문자열[::] 형태로 슬라이싱을 사용할 수 있습니다. - 콜론(:)이 하나인 경우: string[시작:끝]을 의미하여 word = 'ABCDEFG'라는 문자열을 word[0:3] 형태로 만든다면 'ABC'까지를 의미합니다. - 콜론(::)이 둘인 경우: string[시작:끝:규칙]을 의미합니다. word= 'ABCDEFG'를 word[::1]인 경우 'ABCDEFG'를 의미하지만 word[::2]라면 'ACEG' 형태로 인덱스를 2씩 증가시킵니다. word[::-1]은 뒤에서부터 인덱스..

알고리즘/SWEA 2022.06.02

[Python] SWEA D2 1284번 - 수도 요금 경쟁

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제에 나온 공식을 그대로 적용하면 되는 간단한 문제입니다. - 먼저 P, Q, R, S, W를 확실하게 정리해주세요. - P(A사의 수도 요금), Q(B사의 R리터 이하 요금), R(B사의 요금을 결정하는 수도 사용량), S(B사의 수도에서 R 리터를 넘긴 시점의 요금), W(종민이가 사용하는 수도 사용량) - A사: P 가격 * W 리터, A사의 경우 단순하게 요금에 사용량을 곱해주면 됩니다. - B사 1) 종민이의 수도 사용량이 R보다 작은 경우: 종민이의 수도 사용량(W 리터)이 R 리터에 미치지 못하는 경우에는 Q원만 내면 됩니다. 2) 종민이의 수도 사..

알고리즘/SWEA 2022.06.02

[Python] SWEA D2 1288번 - 새로운 불면증 치료법

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 처음 문제를 풀었을 때는 런타임 에러가 발생했습니다. 0 ~ 9까지의 숫자가 있는지 찾아보는 것이기 때문에 0~9까지 미리 입력한 리스트에서 나올때마다 빼주니 런타임에러가 나지 않았습니다. - while문의 조건은 0 ~ 9까지 입력된 수가 없어질 때까지 돌 수 있도록 해줍니다. - room에는 n과 횟수인 cnt를 곱한 값을 문자열로 만들어줍니다. - 문자열 room에 있는 문자를 하나씩 꺼내어 num 리스트에 있는지 확인 후 같은 수가 있는 경우 그 수를 remove로 제거합니다. - num 리스트에는 0 ~ 9까지 입력되어 있기 때문에 num이 빈 리스트가 ..

알고리즘/SWEA 2022.06.02

[Python] SWEA D2 1986번 - 지그재그 숫자

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com "홀수는 더하고 짝수는 뺀다." 를 기억해주시면 됩니다. 1부터 n까지 홀수이면 +, 짝수이면 - 연산자를 사용하여 계산한 결과를 출력합니다. t = int(input()) for i in range(t): n = int(input()) ans = 0 for j in range(1, n + 1): if j % 2 == 1: ans += j else: ans -= j print("#%d %d" % (i + 1, ans)) 피드백은 언제나 환영합니다.

알고리즘/SWEA 2022.06.02

[Python] SWEA D2 1945번 - 간단한 소인수분해

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 입력 받은 수를 2, 3, 5, 7, 11 순서로 나누었을 때, 각각 나머지가 0이 아닌 경우가 나올 때까지 나누어줍니다. 각 while문의 내부에서는 해당 횟수를 증가시켜주고 n을 나눈 몫을 저장합니다. t = int(input()) for i in range(t): n = int(input()) a = b = c = d = e = 0 while n % 2 == 0: a += 1 n //= 2 while n % 3 == 0: b += 1 n //= 3 while n % 5 == 0: c += 1 n //= 5 while n % 7 == 0: d += 1 n //..

알고리즘/SWEA 2022.06.02