728x90
반응형

문제 주소: codeforces.com/problemset/problem/158/A

처음에 점수가 0 보다 커야 등수가 인정된다는 것을 생각 안 하고 풀어서 삽질을 했다.

이래서 문제를 잘 읽어야 한다... 반성하자

n, k = map(int, input().split())
li = list(map(int, input().split()))
cnt = 0
for a in li:
    if a > 0 and a >= li[k-1]:
        cnt += 1
print(cnt)
728x90
반응형

'Agorithm > Codeforces' 카테고리의 다른 글

118A-String Task  (0) 2021.02.16
50A-Domino piling  (0) 2021.02.16
231A-Team  (0) 2021.02.16
1A-Theatre Square  (0) 2021.02.16
71A-Way Too Long Words  (0) 2021.02.16
728x90
반응형

문제 주소: codeforces.com/problemset/problem/231/A

n개의 입력 중 1의 개수가 2개 이상인 경우가 몇 개 있는지 출력해주면 된다.

sum을 사용해서 합이 2 이상인지를 확인하는 방식)

cnt = 0
for _ in range(int(input())):
    if sum(map(int, input().split())) > 1:
        cnt += 1
print(cnt)

count를 사용해서 1의 개수가 2개 이상인지 확인하는 방식)

cnt = 0
for _ in range(int(input())):
    if input().split().count('1') > 1:
        cnt += 1
print(cnt)
728x90
반응형

'Agorithm > Codeforces' 카테고리의 다른 글

50A-Domino piling  (0) 2021.02.16
158A-Next Round  (0) 2021.02.16
1A-Theatre Square  (0) 2021.02.16
71A-Way Too Long Words  (0) 2021.02.16
4A-Watermelon  (0) 2021.02.16
728x90
반응형

문제 주소: codeforces.com/problemset/problem/1/A

처음엔 아래 같이 풀었는데 잘 생각해보니 그냥 나눈 결과를 올림을 해주면 되는 거였다.

n//a + (1 if n%a else 0) = ceil(n/a)

n, m, a = map(int, input().split())
res = (n//a + (1 if n%a else 0)) * (m//a + (1 if m%a else 0))
print(res)

올림을 사용한 코드)

from math import ceil

n, m, a = map(int, input().split())
res = ceil(n/a) * ceil(m/a)
print(res)
728x90
반응형

'Agorithm > Codeforces' 카테고리의 다른 글

50A-Domino piling  (0) 2021.02.16
158A-Next Round  (0) 2021.02.16
231A-Team  (0) 2021.02.16
71A-Way Too Long Words  (0) 2021.02.16
4A-Watermelon  (0) 2021.02.16
728x90
반응형

문제 주소: codeforces.com/problemset/problem/71/A

간단한 문자열 관련 문제이다. len을 사용해서 풀었다.

for _ in range(int(input())):
    s = input()
    if len(s) > 10:
        print(s[0], len(s)-2, s[-1], sep='')
    else:
        print(s)
for _ in range(int(input())):
    s = input()
    print(s[0]+str(len(s)-2)+s[-1] if len(s) > 10 else s)
728x90
반응형

'Agorithm > Codeforces' 카테고리의 다른 글

50A-Domino piling  (0) 2021.02.16
158A-Next Round  (0) 2021.02.16
231A-Team  (0) 2021.02.16
1A-Theatre Square  (0) 2021.02.16
4A-Watermelon  (0) 2021.02.16
728x90
반응형

문제 주소: codeforces.com/problemset/problem/4/A

2보다 큰 짝수는 모두 두 개의 짝수로 나뉜다는 점만 알면 쉽게 풀 수 있다.

w = int(input())
print("YES" if w > 2 and w%2 == 0 else "NO")

 

728x90
반응형

'Agorithm > Codeforces' 카테고리의 다른 글

50A-Domino piling  (0) 2021.02.16
158A-Next Round  (0) 2021.02.16
231A-Team  (0) 2021.02.16
1A-Theatre Square  (0) 2021.02.16
71A-Way Too Long Words  (0) 2021.02.16
728x90
반응형

브루트포스 알고리즘 문제이다.

while 1:
    n = input()
    if n == '0':
        break
    s = sum(map(int, list(n)))
    i = 11
    while 1:
        t = int(n)*i
        if sum(map(int, list(str(t)))) == s:
            print(i)
            break
        i += 1
728x90
반응형
728x90
반응형

단순 구현 문제이다.

while 1:
    n = int(input())
    if n == 0:
        break
    for i in range(1, n+1):
        print('*'*i)
728x90
반응형
728x90
반응형

단순 사칙연산 문제이다. 빈 줄 출력하는 걸 주의해줘야 한다. 실수해서 한 번 틀렸다.

cnt = 1
while 1:
    a, b, c = map(int, input().split())
    if a == b == c == 0:
        break
    if cnt > 1:
        print()
    print(f"Triangle #{cnt}")

    if c == -1:
        print("c = %.3f" % ((a**2+b**2)**0.5))
    elif max(a, b) >= c:
        print("Impossible.")
    elif a == -1:
        print("a = %.3f" % ((c**2-b**2)**0.5))
    elif b == -1:
        print("b = %.3f" % ((c**2-a**2)**0.5))    
    cnt += 1
728x90
반응형
728x90
반응형

단순 수학 문제이다.

from math import ceil

N, K = map(int, input().split())        
for _ in range(K):
    s, t, r = map(int, input().split())
    c = s*t
    res = cnt = 0
    while 1: 
        if (N-cnt <= c):
            res += ceil((N-cnt)/s)
            break;
        else:
            cnt += c;
            res += t+r;    
    print(res)
728x90
반응형
728x90
반응형

단순 사칙연산 문제이다.

N = int(input())
cnt = 0
for i in range(1, N):
    if i**2 - (i-1)**2 > N:
        break
    for j in range(1, i+1):
        if i**2 - j**2 == N:
            cnt += 1
print(cnt)
728x90
반응형
728x90
반응형

단순 구현 문제이다.

while 1:
    N = int(input())
    if N == 0:
        break
    li = list(map(int, input().split()))
    j = m = 0
    for n in li:
        if n == 1:
            j += 1
        else:
            m += 1
    print(f"Mary won {m} times and John won {j} times")
728x90
반응형
728x90
반응형

단순 사칙연산 문제이다.

while 1:
    m, f = map(int, input().split())
    if m == f == 0:
        break
    print(m + f)
728x90
반응형
728x90
반응형

단순 사칙연산 문제이다.

아래 코드도 정답이지만 그냥 제출하면 시간초과가 나온다.

def f(n):
    return n*f(n-1) if n > 0 else 1

while 1:
    n = input()
    if n == '0':
        break
    res = 0
    for i in range(1, len(n)+1):
        res += int(n[len(n)-i])*f(i)
    print(res)

stdin.readline을 사용해서 해결했는데 처음에는 rstrip을 쓰지 않아서 계속 런타임 에러가 나왔다.

주의하도록 하자...

import sys

def f(n):
    return n*f(n-1) if n > 0 else 1

while 1:
    n = sys.stdin.readline().rstrip()
    if n == '0':
        break
    res = 0
    for i in range(1, len(n)+1):
        res += int(n[len(n)-i])*f(i)
    print(res)
728x90
반응형
728x90
반응형

단순하지 않은 구현 문제이다. 쉽지 않았다...

N = int(input())
li = ['.'*(N+2)] + ['.'+input()+'.' for _ in range(N)] + ['.'*(N+2)]
res = []
for i in range(N):
    i += 1
    s = ''
    for j in range(N):
        j += 1
        if ord('0') <= ord(li[i][j]) <= ord('9'):
            s += '*'
        else:
            bomb = 0
            for a in range(i-1, i+2):
                for b in range(j-1, j+2):
                    if ord('0') <= ord(li[a][b]) <= ord('9'):
                        bomb += int(li[a][b])
            s += str(bomb) if bomb < 10 else "M"
    res.append(s)
for s in res:
    print(s)
728x90
반응형
728x90
반응형

구현 문제이다.

ft_split 과제를 할 때 만들었던 단어의 개수를 구해주는 함수와 똑같은 방식으로 해결한 것 같다. 

n, m = map(int, input().split())
li = [input() for _ in range(n)]
cnt = 0
for i in range(n):
    j = 0
    while j < m:
        if li[i][j] == '|':
            j += 1
        else:
            cnt += 1
            while j < m and li[i][j] == '-':
                j += 1
for j in range(m):
    i = 0
    while i < n:
        if li[i][j] == '-':
            i += 1
        else:
            cnt += 1
            while i < n and li[i][j] == '|':
                i += 1
print(cnt)
728x90
반응형

+ Recent posts