728x90
반응형

Python 문제풀이

score = input()
result = 0

if score[0] =='A':
    result += 4
elif score[0] =='B':
    result += 3
elif score[0] =='C':
    result += 2
elif score[0] =='D':
    result += 1

if score =='F':
    result = 0
elif score[1] =='+':
    result += 0.3
elif score[1] =='-':
    result -= 0.3

print(float(result))

조건문만 사용할 줄 알면 정말 간단하게 풀 수 있는 문제인데, 코드를 어떻게 효율적으로 짤 수 있는지가 문제인 것 같습니다. 더욱 간단하게 짤 수 있으면 좋을 것 같습니다.

728x90
반응형
728x90
반응형

Python 문제풀이

x = []
odd=0
sum=0
min=100 #처음 주어지는 자연수가 100보다 작으니..

for i in range(7):
    x.insert(i, int(input()))
    if x[i]%2==1:
        odd+=1
        sum += x[i]
        if x[i] < min:
            min=x[i]

if odd==0:
    print(-1)
    exit
else:
    print(sum)
    print(min)

홀수의 개수를 세어 홀수가 하나도 없는 경우에는 '-1'을 출력하도록 합니다.

 

홀수인 경우는 sum에 홀수의 값을 더하고 min의 값보다 해당 홀수값이 작다면 min에 그 값을 넣습니다.

 

그렇게 홀수의 합과 가장 작은 홀수를 구할 수 있습니다.

728x90
반응형
728x90
반응형

Python 문제풀이

x = int(input())
y = int(input())
sum=0

for i in range(101):
    if x <= (i*i) and y>=(i*i):
        if sum==0:
            min = i*i
        sum += i*i

if sum ==0:
    print(-1)
else:
    print(sum)
    print(min)

주어진 범위가 크지 않기 때문에 100까지의 제곱수를 비교해서 계산하면 됩니다.

728x90
반응형
728x90
반응형

Python 문제풀이

x = input()
y = input()

result=0

for i in range(len(x)):
    for j in range(len(y)):
        if x[i]!=" " and x[i] == y[j]:
            z = x[i]
            x = x.replace(x[i], " ", 1)
            y = y.replace(y[j], " ", 1)
            break

for i in range(len(x)):
    if x[i]!=' ':
        result +=1

for i in range(len(y)):
    if y[i]!=' ':
        result +=1

print(result)

어렵지 않게 같은 알파벳이 있는 경우 양쪽 문자 모두 해당 자리를 공백으로 변환한 후, 마지막에 공백이 아닌 알파벳의 개수를 세는 코드입니다. 서로 공통되지 않는 알파벳의 수를 구한다고 생각하면 편합니다.

728x90
반응형
728x90
반응형

Python 문제풀이

n = int(input())
a = []
result = ''
for i in range(n):
    a.insert(i,input())

if n==1:
    print(a[0])
    exit

for i in range(len(a[0])):
    for j in range(n-1):
        if a[j][i]!=a[j+1][i]:
            result += '?'
            break
        elif j == n-2:
            result += a[j][i]

print(result)

간단하게 입력받는 문장들의 각 자리를 비교해주면 된다. 각자리를 비교하다가 다른게 나온다면 '?' 문자를 결과 문자열에 추가해 주고 다음 자리 문자를 비교하기 위해 break를 한다.

 

그 자리의 문자가 모두 동일하다면 결과 문자열에 해당자리 문자를 추가해준다.

 

간과하게 되는 부분이 있는데, 문자열이 하나밖에 없는 경우의 처리를 따로 해주어야한다. 비교대상이 없기 때문에 그냥 그것만 출력하고 프로그램을 종료하도록 한다.

728x90
반응형
728x90
반응형

Python 문제풀이

n = int(input(''))
result = []
for i in range(n):
    x, y = map(int, input().split())
    x = x%10
    z = x%10
    for j in range(y-1):
        z = z*x
        z = z%10
    if(z==0):
        z=10
    result.insert(i,z)

for i in range(n):
    print(result[i])

처음에는 x**y 등 그냥 제곱수를 계산하고 결과%10을 하여 도출하면 될것이라고 생각할 것이다.

 

하지만 이런 풀이는 시간제한을 지킬 수 없다. 그렇기 때문에 애초에 곱할때마다 한자리수만 남겨두어 곱한다. 어차피 우리가 필요한 값은 1의자리 수이기 때문이다.

 

그리고 그 한자리수가 0으로 끝났다면 그것은 10에 넣어줘야 하기 때문에 조건문을 달아주었다.

728x90
반응형

+ Recent posts