728x90
반응형

단순 문자열 문제이다. 

lambda를 사용해서 5개의 문자열 중 제일 긴 문자열의 길이를 찾아봤다.

li = [input() for _ in range(5)]
i = 0
max_len = max(map(lambda x:len(x), li))
while i < max_len:
    for j in range(5):
        if i+1 > len(li[j]):
            continue
        print(li[j][i], end='')
    i += 1
print()
728x90
반응형
728x90
반응형

단순 사칙연산 문제이다.

for case in range(int(input())):
    li = sorted(map(int, input().split()))
    print(f"Case #{case+1}: ", end='')
    if li[0]+li[1] <= li[2]:
        print("invalid!")
    elif li[0] == li[1] == li[2]:
        print("equilateral")
    elif li[0]==li[1] or li[1]==li[2] or li[2]==li[0]:
        print("isosceles")
    else:
        print("scalene")
728x90
반응형
728x90
반응형

구현 문제이다.

0 ~ i-1번째 사람들 중에서 i번째 사람보다 키가 큰 사람들 중 제일 작은 사람의 위치를 찾아야 한다.

for j in range(i):
	if li[j] > li[i] and li[j] < m:

이 두 줄이 핵심인 것 같다.

for _ in range(int(input())):
    a = list(map(int, input().split()))
    case, li = a[0], a[1:]
    res = 0
    for i in range(1, 20):
        m, m_idx = max(li)+1, i
        for j in range(i):
            if li[j] > li[i] and li[j] < m:
                m = li[j]
                m_idx = j
        if m_idx != i:
            li = li[:m_idx] + [li[i]] + li[m_idx:i] + li[i+1:]
            res += i-m_idx
    print(case, res)
728x90
반응형
728x90
반응형

단순 정렬 문제이다.

li = list(map(int, input().split()))
for i in range(5):
    for j in range(4):
        if li[j] > li[j+1]:
            t = li[j]
            li[j] = li[j+1]
            li[j+1] = t
            print(*li)
728x90
반응형
728x90
반응형

단순 구현 문제이다.

for i in range(int(input())):
    print(f"Case {i+1}: {sum(map(int, input().split()))}")
728x90
반응형
728x90
반응형

단순 수학 문제이다.

for _ in range(int(input())):
    n = int(input())
    li = list(map(int, input().split()))
    print(sum(li))
728x90
반응형
728x90
반응형

단순 구현 문제이다.

n = int(input())
li = list(map(int, input().split()))
cnt = li.count(1)
print(cnt if cnt <= n-cnt else n-cnt)
728x90
반응형
728x90
반응형

단순 사칙연산 문제이다.

c = s = 100
for _ in range(int(input())):
    a, b = map(int, input().split())
    if a > b:
        s -= a
    elif a < b:
        c -= b
print(c)
print(s)
728x90
반응형
728x90
반응형

단순 구현 문제이다.

for _ in range(int(input())):
    y = k = 0
    for i in range(9):
        a, b = map(int, input().split())
        y += a
        k += b
    if y == k:
        print("Draw")
    elif y > k:
        print("Yonsei")
    else:
        print("Korea")
728x90
반응형
728x90
반응형

단순 사칙연산 문제이다.

a1, b1, a2, b2 = map(int, input().split())
a3, b3, a4, b4 = map(int, input().split())
Ga, Gb = a1+a2, b1+b2
Ea, Eb = a3+a4, b3+b4
if Ga-Ea + Gb-Eb == 0:
    print("Tie")
elif Ga-Ea + Gb-Eb > 0:
    print("Gunnar")
else:
    print("Emma")
728x90
반응형
728x90
반응형

단순 구현 문제이다.

X = list(map(int, input().split()))
Y = list(map(int, input().split()))
for i in range(5):
    X[i] += Y[i]
print('Y' if X.count(1) == 5 else 'N')
728x90
반응형
728x90
반응형

단순 구현 문제이다.

w, n, p = map(int, input().split())
li = list(map(int, input().split()))
cnt = 0
for h in li:
    if w <= h <= n:
        cnt += 1
print(cnt)
728x90
반응형
728x90
반응형

단순 사칙연산 문제이다.

n, T = map(int, input().split())
li = list(map(int, input().split()))
for i in range(n):
    if sum(li[:i+1]) > T:
        print(i)
        break
    elif i == n-1:
        print(n)
728x90
반응형
728x90
반응형

단순 사칙연산 문제이다. 처음엔 이렇게 길게 구현해서 통과했다.

a, b = map(int, input().split())
li = [a+b, a-b, a*b]
m = max(li)
idx = li.index(m)
m = m if m > 0 else f'({m})'
a = a if a > 0 else f'({a})'
b = b if b > 0 else f'({b})'

if li.count(m) > 1:
    print('NIE')
elif idx == 0:
    print(f"{a}+{b}={m}")
elif idx == 1:
    print(f"{a}-{b}={m}")
elif idx == 2:
    print(f"{a}*{b}={m}")

통과하고 나서 람다와 딕셔너리를 사용해서 다시 구현해봤는데 틀렸다는 결과가 나온다.

위의 코드랑 다른 점이 없는 것 같은데 뭐가 틀린 건지 모르겠다.

a, b = map(int, input().split())
d = {a+b:'+', a-b:'-', a*b:'*'}
li = list(d.keys())
m = max(li)

if li.count(m) > 1:
    print('NIE')
else:
    f = lambda x: f"({x})" if x < 0 else x
    print(f"{f(a)}{d[m]}{f(b)}={f(m)}")
728x90
반응형
728x90
반응형

단순 문자열 문제이다.

for _ in range(int(input())):
    L, D = input().split('-')
    n = int(D)
    s = 0
    for i in range(3):
        s += (ord(L[i])-65) * 26**(2-i)
    print("nice" if abs(s-n) <= 100 else "not nice")
728x90
반응형

+ Recent posts