arr=input()
n = arr.split(input())
print(len(n)-1)

<코드 설명>

문자열.split('구분자') : 구분자를 기준으로 문자열을 분할

 

arr에 문자열을 입력받는다.

arr문자열을 split함수를 통해 나눠주는데, 이 때 구분자를 input 받아준다.

이를 n에 저장해주고, n의 길이 -1을 출력해준다.

 

<실행 결과>

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

[BOJ] 5619 세 번째  (0) 2022.11.20
[BOJ] 17413 단어 뒤집기 2  (1) 2022.11.20
[BOJ] 3077 임진왜란  (0) 2022.11.13
[BOJ] 4889 안정적인 문자열  (0) 2022.11.13
[BOJ] 14425 문자열 집합  (0) 2022.11.06

n=int(input())
ans=input().split()
test=input().split()
dic={}
cnt=0
for i in range(n):
    dic[ans[i]]=i
for i in range(n):
    for j in range(i+1, n):
        if dic[test[i]]<dic[test[j]]:
            cnt+=1
print(str(cnt)+"/"+str(n*(n-1)//2))

<코드 설명>

해전의 개수인 n을 먼저 입력받는다.

그리고 올바른 정답인 ans와 현우가 작성한 답안인 test를 입력받는다.

n만큼 for문을 통해 ans원소의 순서를 dic에 저장해주었다.

이중 for문을 통해 test의 순서가 ans의 순서와 동일한 지 확인해주고, 맞다면 cnt값을 증가시킨다.이렇게 구한 cnt값과 총점인 n*(n-1)//2을 출력해준다.

 

<실행 결과>

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

[BOJ] 17413 단어 뒤집기 2  (1) 2022.11.20
[BOJ] 1543 문서 검색  (0) 2022.11.13
[BOJ] 4889 안정적인 문자열  (0) 2022.11.13
[BOJ] 14425 문자열 집합  (0) 2022.11.06
[BOJ] 16499 동일한 단어 그룹화하기  (0) 2022.11.06

ans=[]
while True:
    arr=input()
    st=[]
    cnt=0
    if '-' in arr:
        break
    for i in arr:
        if i=='{':
            st.append('{')
        else:
            if st:
                st.pop()
            else:
                cnt+=1
                st.append('{')
    cnt+=len(st)//2
    ans.append(cnt)
for i in range(len(ans)):
    print(i+1, '. ', ans[i], sep='')

<코드 설명>

while문을 이용해 무한반복해주며, arr를 input받는다.

입력의 마지막 줄은 '-'가 한 개 이상 주어지기 때문에 '-'가 arr에 포함되면 break해준다.

 

arr의 현재 문자가 '{'일 때, st(스택)에 이를 append해준다.

arr의 현재 문자가 '}'일 때, st가 비어있지 않을 때 pop을 해준다. st가 비어있을 때는 안정적이지 않은 상태이므로 cnt값을 1 증가시켰고, 안정적이지 않은 상태를 바꿔주기 위해 '{'를 st에 append해준다.

 

st의 길이/2를 cnt에 더해주고, 이렇게 구한 cnt값을 ans배열에 추가시켜주었다.

 

ans배열의 원소를 모두 출력시켜주었다.

 

 

<실행 결과>

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

[BOJ] 1543 문서 검색  (0) 2022.11.13
[BOJ] 3077 임진왜란  (0) 2022.11.13
[BOJ] 14425 문자열 집합  (0) 2022.11.06
[BOJ] 16499 동일한 단어 그룹화하기  (0) 2022.11.06
[BOJ] 13417 카드 문자열  (0) 2022.11.06

n, m=map(int, input().split())
d=dict()
ans=0
for i in range(n):
    str1=input()
    d[str1]=1
for i in range(m):
    str2=input()
    if str2 in d:
        ans += 1
print(ans)

<코드 설명>

문자열 개수인 n과 m을 입력받아주었다.

n만큼 str1을 input받아 dict에 str1을 각각 1의 값을 저장해주었다.

m만큼 str2를 input받았다.

이전 dict에 저장해주었던 값에 str2가 포함되어 있다면 ans를 1 증가해주었다.

이렇게 구한 ans값을 출력해주었다.

 

<실행 결과>

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

[BOJ] 3077 임진왜란  (0) 2022.11.13
[BOJ] 4889 안정적인 문자열  (0) 2022.11.13
[BOJ] 16499 동일한 단어 그룹화하기  (0) 2022.11.06
[BOJ] 13417 카드 문자열  (0) 2022.11.06
[BOJ] 1065 한수  (0) 2022.10.09

+ Recent posts