본문 바로가기
Problem Solving/SWEA

[ SWEA ] D1 풀이 모음 - python

by IM조이 2021. 6. 23.

2072 홀수만 더하기

for tc in range(int(input())):
    a = list(map(int, input().split()))
    s = 0
    for i in range(10):
        if a[i]%2!=0: s += a[i]
    print("#{} {}".format(tc+1, s))


2071 평균값구하기

for tc in range(int(input())):
    a = list(map(int, input().split()))
    print("#{} {}".format(tc+1, round(sum(a)/10)))

 

2070 큰놈,작은놈,같은놈

for tc in range(int(input())):
    a,b = map(int, input().split())
    print("#{} ".format(tc+1), end="")
    if a == b:
        print("=")
    elif a > b:
        print(">")
    else:
        print("<")

 

2068 최대수구하기

for tc in range(int(input())):
    l = list(map(int,input().split()))
    print("#{} {}".format(tc+1, max(l)))

 

2063 중간값찾기

n=int(input())
a=sorted(list(map(int, input().split())))
print(a[n//2])

 

2058 자릿수정하기

n = input()
a = 0
for num in n:
    a += int(num)
print(a)

 

2056 연월일달력

def check(n):
    if n[0:4] == '0000': return -1
    else:
        if n[4:6] == '00':
            return -1
        elif n[4:6] == '02':
            if 0< int(n[6:8]) <29:
                return n[0:4]+'/'+n[4:6]+'/'+n[6:8]
            else: return -1
        elif n[4:6] in ['04', '06', '09', '11']:
            if 0< int(n[6:8]) <31:
                return n[0:4]+'/'+n[4:6]+'/'+n[6:8]
            else: return -1
        else:
            if 0< int(n[6:8]) <32:
                return n[0:4]+'/'+n[4:6]+'/'+n[6:8]
            else: return -1
for tc in range(int(input())):
    a = input()
    print("#{} {}".format(tc+1,check(a)))

가독성을 고려했을 때 아래 코드가 더 이해하기는 쉽다(어차피 1년은 12개월이고, 언제 30일 31 일인지 알고 있기때문)

md = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
for tc in range(int(input()):
    s = input()
    month = int(s[4:6])
    day = int(s[6:8])
    res = "-1"
    if 1<=month and month<=12 and 1<=day and day<=md[month-1]:
    	res = s[0:4]+"/"+s[4:6]+"/"+s[6:8]
    print( f"#{tc+1} {res}" )

 

2050 알파벳을숫자로변환

for al in input():
    print(ord(al)-64, end=" ")

ord( 문자 ) : 아스키코드로 대상의 숫자 값을 리턴함
chr( 숫자 ) : 아스키코드에서 대상의 문자 값을 리턴함

 

2047 신문헤드라인

t = input()
print(t.upper())

 

2046 스탬프찍기

n = int(input())
print('#'*n)

 

2043 서랍의비밀번호

n=input()
print(int(n.split()[0])-int(n.split()[1])+1)

 

2029 몫과나머지출력

for tc in range(int(input())):
    a,b=map(int,input().split())
    print("#{} {} {}".format(tc+1,a//b,a%b))

 

2027 대각선출력

for i in range(5):
    for j in range(5):
        if j == i: print('#', end='')
        else: print('+', end='')
    if i != 4: print()

 

2025 N줄덧셈

a = 0
for i in range(1,int(input())+1):
    a += i
print(a)

 

1938 아주 간단한 계산기

a, b = map(int, input().split())
print(a+b)
print(a-b)
print(a*b)
print(a//b)

 

1933 간단한 N의 약수

a = int(input())
print(" ".join(map(str,list(filter(lambda n:a%n==0,list(range(1,a+1)))))))

 

1936 1대1가위바위보

a, b = map(int, input().split())
if a-b in [-2, 1]:
    print("A")
else:
    print("B")

 

2019 더블더블

a = 1
for i in range(int(input())+1):
    print(a, end=" ")
    a*=2

 

1545 거꾸로출력해보아요

for i in range(int(input()),-1,-1):
    print(i, end=" ")

 

댓글