[SWEA] D3 문제 풀이 - 3

kiteB·2022년 6월 5일
1

SWEA

목록 보기
6/6
post-thumbnail

📌 구독자 전쟁 (10200)

🔗 문제 링크

T = int(input())

for test_case in range(1, T + 1):
    n, a, b = map(int, input().split())
    print(f"#{test_case} {min(a, b)} {max(0, a + b - n)}")

📌 소득 불균형 (10505)

🔗 문제 링크

T = int(input())

for test_case in range(1, T + 1):
    n = int(input())
    data = list(map(int, input().split()))
    avg = sum(data) // n
    answer = 0

    for d in data:
        if d <= avg:
            answer += 1
    print(f"#{test_case} {answer}")

📌 제곱 팰린드롬 수 (10570)

🔗 문제 링크

T = int(input())

for test_case in range(1, T + 1):
    a, b = map(int, input().split())
    answer = 0

    for i in range(a, b + 1):
        temp = int(i ** 0.5)
        if (temp ** 2) == i:
            if str(i) == str(i)[::-1] and str(temp) == str(temp)[::-1]:
                answer += 1
    print(f"#{test_case} {answer}")
  • 먼저 제곱수인지 검사한 뒤, NN의 제곱근 모두 팰린드롬인지 검사한다.

📌 이진수 표현 (10726)

🔗 문제 링크

T = int(input())

for test_case in range(1, T + 1):
    n, m = map(int, input().split())
    binary = bin(m)[2:][::-1]
    answer = "OFF"

    if len(binary) < n:
        pass
    else:
        if binary[:n] == '1' * n:
            answer = "ON"
    print(f"#{test_case} {answer}")
  • 이진수로 변환한 뒤, 마지막 N개의 비트가 모두 1인지 검사한다.

📌 문자열의 거울상 (10804)

🔗 문제 링크

T = int(input())

for test_case in range(1, T + 1):
    s = input()
    mirror = {'b': 'd', 'd': 'b', 'p': 'q', 'q': 'p'}
    answer = ''

    for i in range(len(s) - 1, -1, -1):
        answer += mirror[s[i]]
    print(f"#{test_case} {answer}")
  • 각 문자마다 거울에 비추었을 때 보이는 문자를 mirror에 저장해준다.

📌 외로운 문자 (10912)

🔗 문제 링크

from collections import Counter

T = int(input())

for test_case in range(1, T + 1):
    s = input()
    counter = Counter(s).most_common()
    answer = []

    for i in range(len(counter)):
        if int(counter[i][1]) % 2 != 0:
            answer.append(counter[i][0])

    if not answer:
        print(f"#{test_case}", "Good")
    else:
        answer = ''.join(sorted(answer))
        print(f"#{test_case} {answer}")
  • 각 문자의 등장 횟수를 counter에 저장한 뒤, 등장 횟수가 짝수가 아닌 문자를 answer에 하나씩 넣어서 출력해준다.

📌 평범한 숫자 (11736)

🔗 문제 링크

T = int(input())

for test_case in range(1, T + 1):
    n = int(input())
    numbers = list(map(int, input().split()))
    answer = 0

    for i in range(1, n - 1):
        if numbers[i - 1] < numbers[i] < numbers[i + 1] or numbers[i + 1] < numbers[i] < numbers[i - 1]:
            answer += 1

    print(f"#{test_case} {answer}")
  • 평범한 숫자는 최솟값도, 최댓값이 아닌 숫자

📌 반반 (11856)

🔗 문제 링크

from collections import Counter

T = int(input())

for test_case in range(1, T + 1):
    s = input()
    counter = Counter(s).most_common(2)
    answer = ''

    if len(counter) == 2:
        if counter[0][1] == counter[1][1] == 2:
            answer = "Yes"
        else:
            answer = "No"
    else:
        answer = "No"

    print(f"#{test_case} {answer}")
  • Counter를 이용하여 모든 글자가 두 번씩 등장하는지 검사한다.

📌 구구단 1 (12004)

🔗 문제 링크

T = int(input())

for test_case in range(1, T + 1):
    n = int(input())
    numbers = []
    answer = "Yes"

    for i in range(9, 0, -1):
        if n % i == 0:
            numbers = [i, n // i]
            break

    for num in numbers:
        if num > 9:
            answer = "No"

    print(f"#{test_case} {answer}")

📌 구구단 (12221)

🔗 문제 링크

T = int(input())

for test_case in range(1, T + 1):
    a, b = map(int, input().split())
    answer = -1

    if a // 10 >= 1 or b // 10 >= 1:
        pass
    else:
        answer = a * b

    print(f"#{test_case} {answer}")

📌 24시간 (12368)

🔗 문제 링크

T = int(input())

for test_case in range(1, T + 1):
    a, b = map(int, input().split())
    time = a + b

    if time >= 24:
        time -= 24

    print(f"#{test_case} {time}")

📌 조별과제 (13218)

🔗 문제 링크

T = int(input())

for test_case in range(1, T + 1):
    n = int(input())
    print(f"#{test_case} {n // 3}")

📌 일요일 (13229)

🔗 문제 링크

T = int(input())
day = {"SUN": 0,  "MON": 1, "TUE": 2, "WED": 3, "THU": 4, "FRI": 5, "SAT": 6}

for test_case in range(1, T + 1):
    s = input()
    print(f"#{test_case} {7 - day[s]}")
  • daySUN과의 차이를 저장해둔다.
profile
🚧 https://coji.tistory.com/ 🏠

0개의 댓글