반응형
s = input()

card = [0] * 10
for i in str(s):
    if i == '6' or i == '9':
        if card[6] == card[9]:
            card[6] += 1
        else:
            card[9] += 1
    else:
        card[int(i)] += 1

print(max(card)) 

 

반응형
반응형
s = input().upper()
a = [0]*26
for i in str(s):
    a[ord(i)-65] += 1

num = max(a)
cnt = 0
for x in a:
    if x == num:
        cnt += 1

if cnt >= 2:
    print('?')
else:
    print(chr(a.index(num)+65))
반응형
반응형

● 문제 출처 Site

 

1920번: 수 찾기

첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다.

www.acmicpc.net

[코드]

def Count(num):
    lt = 0
    rt = len(a)-1
    cnt = 0
    while lt <= rt:
        mid = (lt+rt)//2
        if num == a[mid]:
            cnt = 1
            return cnt
        elif num < a[mid]:
            rt = mid - 1
        else:
            lt = mid + 1
    return cnt


n = int(input())
a = list(map(int, input().split()))

m = int(input())
b = list(map(int, input().split()))
a.sort()
for x in b:
    if Count(x) > 0:
        print('1')
    else:
        print('0')

[느낀 점]

애초에 문제 분류를 이분 탐색 으로 설정해서 풀었기 때문에, 생각하는데는 많이 어렵진 않았다. 하지만 정확하게 문제를 이해하는게 좀 힘들었다. 아직 문제에 대한 이해력이 많이 부족한것 같다. 그리고 과연 이 문제가 이분 탐색이라고 안나왔다면 내가 풀 수 있었을까...? 라는 의구심도 든다. 

 

또한, 코드를 옮겨서 리뷰를 해보니 변수 선언에 좀 더 신중해야 겠다는 생각이 든다.

반응형
반응형

(주의) 정답은 올바르게 잘 나오는데 시간초과가 발생합니다. 추후 수정하겠습니다!

문제

N개의 수로 된 수열 A[1], A[2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i]+A[i+1]+…+A[j-1]+A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오.

정답

import sys
sys.stdin = open('input.txt', 'rt')
n, m = map(int, input().split())
a = list(map(int, input().split()))
current = 0
cnt = 0
for i in range(len(a)):
    if a[i] == m:
        cnt += 1
    else:
        current = a[i]
        for j in range(i+1, len(a)):
            current += a[j]
            if current == m:
                cnt += 1
                break
            elif current > m:
                break
                
print(cnt)
반응형

+ Recent posts