메뉴 건너뛰기

python 팬미팅 알고리즘

mangdee 2019.06.21 10:43 조회 수 : 393

https://algospot.com/judge/problem/read/FANMEETING

 

팬미팅 알고리즘

def hugcount(n,f):
    #멤버를 2진수로 변환. 남자는 1, 여자는 0
    nn = int(n.replace("F", "0").replace("M", "1"),2)
    #팬을 2진수로 변환. 남자는 1, 여자는 0
    ff = int(f.replace("F", "0").replace("M", "1"),2)

    cnt = 0
    #팬의 숫자에서 멤버의 숫자를 뺀 수 + 1 만큼 반복
    for i in range(len(f) - len(n) + 1):
        #팬과 멤버를 AND 연산 값이 0인 경우 모두 허그
        if int(nn & ff) == 0:
            cnt += 1
        #멤버를 왼쪽으로 한칸 쉬프트
        nn = nn << 1

    print("cnt:",cnt)

c = int(input())

for i in range(c):
    n = input()
    f = input()
    hugcount(n,f)

 

#입력
4
FFFMMM
MMMFFF
FFFFF
FFFFFFFFFF
FFFFM
FFFFFMMMMF
MFMFMFFFMMMFMF
MMFFFFFMFFFMFFFFFFMFFFMFFFFMFMMFFFFFFF

 

#결과

cnt: 1

cnt: 6

cnt: 2

cnt: 2

 

 
번호 제목 글쓴이 날짜 조회 수
21 Python 일반 - n까지의 수 중에서 소수(Prime Number) 구하기 Eugene 2022.09.02 263
20 Python 일반 - 문자열 압축 Eugene 2022.04.19 149
19 Python 일반 - 1등에서 3등까지 사탕 나눠주기 Eugene 2022.03.14 165
18 Python 일반 - 올바른 괄호문자열인가? Eugene 2022.01.26 138
17 Python 일반 - 깊이 우선 탐색 Eugene 2021.03.04 239
16 Python 일반 - Bubble Sort(버블 정렬) Eugene 2020.02.29 313093
15 Python 일반 - 10진수를 2진수로 변환 [1] Eugene 2020.02.19 1790
14 Python 일반 - 스택/큐를 사용하지 않은 회문 알고리즘 Eugene 2019.10.09 455
13 Python 최대 증가 부분 수열 구하기. mangdee 2019.07.06 364
» python 팬미팅 알고리즘 mangdee 2019.06.21 393
11 Python 동적 변수 생성 mangdee 2019.06.05 13836
10 Python 순열과 조합 mangdee 2019.06.04 1120
9 Python 일반 - 2중 루프를 이용한 문자로 여러가지 삼각형 그리기 [1] Eugene 2019.04.11 2384
8 Python 일반 - 2중 루프를 이용한 문자로 삼각형 찍기 Eugene 2019.02.19 483
7 Python 기초: 논리적 물리적 행(line) Eugene 2018.10.24 4665
6 Python 기초: 재귀함수를 이용한 최대값 구하기. [1] Eugene 2018.09.08 6432
5 Python 기초 - 변수와 문자 상수의 사용 Eugene 2018.06.12 459
4 Python 기초 - 이스케이프(escape) 문자와 변수 외... Eugene 2018.01.24 1711
3 Python 기초 - 주석과 자료형 2: format() Method Eugene 2017.10.27 442
2 Python 기초 - 주석과 자료형 1 Eugene 2017.10.19 1139