import sys

n, m=map(int, sys.stdin.readline().split())
dic=dict()
for _ in range(n):
    dic[sys.stdin.readline().rstrip()]=1

for _ in range(m):
    wm = sys.stdin.readline().rstrip().split(',')
    for word in wm :
        if word in dic.keys() :
            if dic[word] == 1 :
                dic[word] -= 1
                n -= 1
    print(n)

<코드설명>

키워드 개수인 n과 블로그에 쓴 글의 개수인 m을 먼저 입력받았다. 키워드를 입력받기 위해 n만큼 for문을 반복시켜주었고, dict에 키워드들을 입력받아 저장해주었다. 그리고 1을 해당 key 값에 저장해주었다. 

글에 사용된 키워드를 입력받기 위해 m만큼 for문을 반복시켜주었고, 쉼표로 구분해주기 때문에 split(',')을 추가하여 wm에 입력을 받아주었다.

wm의 word가 dic.keys()에 있으면서 dic[word]의 값이 1이라면 1을 감소시켜주고 키워드 개수인 n도 1씩 감소하도록 하였다.

최종적으로 남는 키워드의 개수인 n을 출력해주었다.

 

 

<실행결과>

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] 1912 연속합  (0) 2022.09.25
[BOJ] 3986 좋은 단어  (0) 2022.09.25
[BOJ] 1475 방 번호  (0) 2022.09.18
[BOJ] 4358 생태학  (0) 2022.09.18
[BOJ] 20291 파일 정리  (0) 2022.09.17

num=input()
arr=[0]*10

for i in num:
    if(i=='6' or i=='9'):
        if arr[6]<=arr[9]:
            arr[6]+=1
        else:
            arr[9]+=1
    else:
        arr[int(i)]+=1
print(max(arr))

<코드설명>

방 번호인 num의 입력을 받아주었다. 그리고 플라스틱 숫자 세트 0-9번을 모두 사용하고자 arr를 만들어주었다.num의 숫자가 6 혹은 9가 아닐 때, arr[i]의 값을 1 증가시켜주었다.

 

문제에서 6과 9는 서로 바꿔 사용할 수 있다고 한다.num의 숫자가 6 혹은 9일 때, 그리고 arr[6]이 arr[9]의 값보다 작거나 같을 때 arr[6]을 1 증가시켜주었고, 그렇지 않으면 arr[9]을 1 증가시켜주었다

 

그리고 arr중 가장 큰 값을 출력시켜 필요한 세트 개수를 출력해주었다.

 

<실행결과>

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] 3986 좋은 단어  (0) 2022.09.25
[BOJ] 22233 가희와 키워드  (0) 2022.09.24
[BOJ] 4358 생태학  (0) 2022.09.18
[BOJ] 20291 파일 정리  (0) 2022.09.17
[BOJ] 1302 베스트셀러  (0) 2022.09.11

import sys

dic=dict()
cnt=0

while True:
    word = sys.stdin.readline().rstrip()
    if word == '':
        break
    cnt+=1
    if word in dic:
        dic[word]+=1
    else:
        dic[word]=1

tree=sorted(dic.items())

for key, value in tree:
    percent=round((value/cnt)*100,4)
    print(key, '%.4f' %percent)

<코드설명>

먼저 while문을 통해 word를 입력받아주었다. word에 아무 입력도 없을 때 break를 하도록 해주었다.word가 dic에 있다면 dic[word]에 1을 추가시켜주었고, 그렇지 않다면 dic[word]를 1로 지정해주었다.그리고 백분율을 구해야하기 때문에 while문을 돌 때마다 cnt값을 증가시켜주었다.사전 순으로 정렬해야 하므로 dic의 items를 sort해주고 이를 tree에 저장해주었다.백분율을 구하기 위해 value값을 cnt로 나누었고, 이를 100 곱해주었다. 그리고 올림자리 수를 4로 지정하였다.그리고 소수점 4번째자리까지 출력해야하므로 출력형식을 %.4f로 지정하여 출력해주었다.

 

<실행결과>

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] 22233 가희와 키워드  (0) 2022.09.24
[BOJ] 1475 방 번호  (0) 2022.09.18
[BOJ] 20291 파일 정리  (0) 2022.09.17
[BOJ] 1302 베스트셀러  (0) 2022.09.11
[BOJ] 7785 회사에 있는 사람  (0) 2022.09.11

n=int(input())
dic=dict()
for i in range(n):
    exp = input().split('.')[1]

    if exp in dic:
        dic[exp]+=1
    else:
        dic[exp]=1

file=sorted(dic.items())

for key, value in file:
    print(key, value)

<코드설명>

먼저, 확장자 파일의 개수를 n으로 input받았다. 

n만큼 for문을 돌려 확장자인 exp의 input을 받아 주었다. 그리고 그와 동시에 '.'으로 split을 하여 index가 1번째인 문자를 exp에 저장해주었다.

exp가 dic에 이미 있다면, dic[exp]를 1 증가시켜주고, 그렇지 않다면 dic[exp]=1이라고 지정해주었다.

사전순으로 정렬하기 위해 sorted(dic.items())를 해주었고, 이를 file에 저장해주었다.

file 속 key와 value를 출력해주었다.

 

 

<실행결과>

 

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] 1475 방 번호  (0) 2022.09.18
[BOJ] 4358 생태학  (0) 2022.09.18
[BOJ] 1302 베스트셀러  (0) 2022.09.11
[BOJ] 7785 회사에 있는 사람  (0) 2022.09.11
[BOJ] 10815 숫자 카드  (0) 2022.09.10

+ Recent posts