tc=int(input())
arr=[]
for i in range(tc):
    str=list(input())
    str=sorted(str)
    if str not in arr:
        arr.append(str)
print(len(arr))

<코드 설명>

먼저 testcase인 tc를 입력받아주었다.

tc만큼 for문을 통해 반복하여 단어(str)을 입력받았다.

그리고 이를 sorted 적용을 통해 정렬해주었다.

arr가 str에 포함되어 있지 않다면, arr에 str을 추가해주었다.

그리고 최종적으로 arr에 저장되어 있는 개수를 출력하여 그룹의 최소 개수를 출력해주었다.

 

 

<실행 결과>

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

[BOJ] 4889 안정적인 문자열  (0) 2022.11.13
[BOJ] 14425 문자열 집합  (0) 2022.11.06
[BOJ] 13417 카드 문자열  (0) 2022.11.06
[BOJ] 1065 한수  (0) 2022.10.09
[BOJ] 2776 암기왕  (0) 2022.10.09

 

tc=int(input())
for i in range(tc):
    n=int(input())
    str=list(input().split())
    arr=[str[0]]

    for j in range(1, len(str)):
        left = arr[0]
        if str[j] <= left:
            arr.insert(0,str[j])
        else:
            arr.append(str[j])
    for j in arr:
        print(j, end='')
    print()

<코드 설명>

먼저 testcase를 입력받는다. 그리고 그만큼 for문을 반복시켜 각 카드의 개수와 카드에 적힌 알파벳을 입력받는다.

입력받아온 알파벳은 split하여 str에 list의 형태로 적용해주었다.

arr 배열을 만들어 str의 첫번째 값을 저장해주었다.

arr의 첫번째 원소가 str[j]원소보다 크거나 같을 때, arr배열의 첫번째 원소로 str[j] 원소를 삽입해준다.

그렇지 않다면, arr배열 맨 뒤에 str[j]원소를 삽입해준다.

이를 str list의 길이만큼 반복시켜주었다.

이렇게 구한 arr배열의 원소를 출력시켜주었다.

 

 

<실행 결과>

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

[BOJ] 14425 문자열 집합  (0) 2022.11.06
[BOJ] 16499 동일한 단어 그룹화하기  (0) 2022.11.06
[BOJ] 1065 한수  (0) 2022.10.09
[BOJ] 2776 암기왕  (0) 2022.10.09
[BOJ] 9322 철벽 보안 알고리즘  (0) 2022.10.09

n=int(input())
cnt=0
for i in range(1, n+1):
    arr=list(map(int, str(i)))
    if i<100 : cnt+=1
    elif arr[0]-arr[1]==arr[1]-arr[2]: cnt+=1
print(cnt)

<코드 설명>

양수 n을 입력받아주었다. 그리고 cnt의 초기값을 0으로 설정해주었다.

 

숫자를 자릿수 기준으로 나누기 위해 i를 먼저 문자열로 바꿀 수 있도록 str(i)로 바꿔주었다.

문자열로 되어있는 각 자릿수를 정수로 바꿔주기 위해 map(int, str(i))를 작성해주었다.

이를 list로 바꾸기 위해 list(map(int, str(i))) 라고 작성해주었다.

 

i가 100보다 작은 경우, 항상 한수이므로 cnt값을 증가시켜주었다.

그렇지 않으면 각 자리수가 등차수열의 경우인 arr[0]-arr[1]==arr[1]-arr[2]일 때 cnt값을 증가시켜주었다.

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

 

<실행결과>

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

[BOJ] 16499 동일한 단어 그룹화하기  (0) 2022.11.06
[BOJ] 13417 카드 문자열  (0) 2022.11.06
[BOJ] 2776 암기왕  (0) 2022.10.09
[BOJ] 9322 철벽 보안 알고리즘  (0) 2022.10.09
[BOJ] 1463 1로 만들기  (0) 2022.10.02

import sys

t=int(sys.stdin.readline())
for _ in range(t):
    n=int(sys.stdin.readline())
    note1=set(map(int, sys.stdin.readline().split()))
    m=int(sys.stdin.readline())
    note2=list(map(int, sys.stdin.readline().split()))
    for i in note2:
        if  i in note1:
            print(1)
        else:
            print(0)

<코드 설명>

testcase t를 먼저 입력받아주었다.

t만큼 for문으로 반복시켜 수첩1의 정수 개수인 n, n개의 수첩1 정수들, 수첩2의 정수 개수인 m, m개의 수첩2 정수들을 모두 입력받아주었다.

note2 속 원소인 i가 note1에 속해 있다면 1을 출력해주고, 그렇지 않으면 0을 출력하도록 하였다.

시간초과를 대비하여 import sys를 이용하여 입력받아주었다.

 

 

<실행결과>

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

[BOJ] 13417 카드 문자열  (0) 2022.11.06
[BOJ] 1065 한수  (0) 2022.10.09
[BOJ] 9322 철벽 보안 알고리즘  (0) 2022.10.09
[BOJ] 1463 1로 만들기  (0) 2022.10.02
[BOJ] 2910 빈도 정렬  (0) 2022.10.02

+ Recent posts