alpyrithm_알파이리즘

[알고리즘][Python] 백준(BOJ) 2966 찍기_파이썬 본문

Algorithm/백준 알고리즘_Python

[알고리즘][Python] 백준(BOJ) 2966 찍기_파이썬

알파이 2020. 10. 11. 08:48

 

2966 찍기    www.acmicpc.net/problem/2966

 

2966번: 찍기

상근이, 창영이, 현진이는 역사와 전통을 자랑하는 Sogang ACM-ICPC Team에 가입하려고 한다. 하지만, 가입하려고 하는 모든 지원자는 C언어 필기시험을 통과해야 한다. 이들은 C언어를 할 줄 모른다. �

www.acmicpc.net

 

 

 

문제 풀기 전 공부할 것 : 구현, 브루트포스 알고리즘

 

 

 

 

 

 

 

풀이 1

<내용>

  • 규칙에 맞도록 하나씩 구현했다.

 

<코드>

A, B, G = 0, 0, 0
n = int(input())
correct = input()
for i in range(n):
    if i % 3 == 0:
        if correct[i] == 'A':
            A += 1
    elif i % 3 == 1:
        if correct[i] == 'B':
            A += 1
    else:
        if correct[i] == 'C':
            A += 1
            
    if i % 4 == 0 or i % 4 == 2:
        if correct[i] == 'B':
            B += 1
    elif i % 4 == 1:
        if correct[i] == 'A':
            B += 1
    else:
        if correct[i] == 'C':
            B += 1
            
    if i % 6 == 0 or i % 6 == 1:
        if correct[i] == 'C':
            G += 1
    elif i % 6 == 2 or i % 6 == 3:
        if correct[i] == 'A':
            G += 1
    else:
        if correct[i] == 'B':
            G += 1
            
m = max(A, B, G)
print(m)
if m == A:
    print('Adrian')
if m == B:
    print('Bruno')
if m == G:
    print('Goran')

 

 

 

 

 

 

 

 

 

풀이 2

<내용>

  • 규칙에 맞도록 간단하게 구현했다.

 

<코드>

A, B, G = 0, 0, 0
Adrian = ['A', 'B', 'C']
Bruno = ['B', 'A', 'B', 'C']
Goran = ['C', 'C', 'A', 'A', 'B', 'B']

n = int(input())
correct = input()
for i in range(n):
    if correct[i] == Adrian[i%3]:
        A += 1
            
    if correct[i] == Bruno[i%4]:
        B += 1
            
    if correct[i] == Goran[i%6]:
        G += 1
            
m = max(A, B, G)
print(m)
if m == A:
    print('Adrian')
if m == B:
    print('Bruno')
if m == G:
    print('Goran')

 

 

 

 

 

 

 

 

728x90
반응형
Comments