상세 컨텐츠

본문 제목

[백준] 3028번 창영마을 (Go)

Development/Algorithm

by thisisnew 2022. 12. 27. 00:01

본문

반응형

https://www.acmicpc.net/problem/3028

 

3028번: 창영마을

첫째 줄에 정인이가 컵을 섞은 순서가 주어진다. 이 순서는 A, B, C중 하나이고, 문제에 있는 그림을 참고하면 된다. 정인이는 컵을 최대 50번 섞는다.

www.acmicpc.net

 

문제

상근이와 정인이는 창영마을에 살고 있다. 창영마을은 전세계에서 가장 평화로운 마을로 알려져 있다. 이 마을의 이장은 상근이다.

정인이는 항상 상근이의 자리를 질투하고 있다. 정인이는 상근이가 이장의 자격이 없다는 것을 속임수를 이용해서 사람들에게 알려주려고 한다. 

먼저 정인이는 불투명한 컵 세 개를 일렬로 탁자 위에 올려놓고, 가장 왼쪽 컵에 작은 공 하나를 넣어놓았다. 이제 정인이는 컵 2개를 위치를 바꿔가면서 여러 번 섞을것이고, 모두 섞은 뒤에 상근이에게 어떤 컵에 공이 들어있는지 말하라고 할 것이다. 컵이 3개가 있을 때, 위치를 바꿀 수 있는 가능한 방법은 아래와 같이 3가지가 있다.

 

 

입력

첫째 줄에 정인이가 컵을 섞은 순서가 주어진다. 이 순서는 A, B, C중 하나이고, 문제에 있는 그림을 참고하면 된다. 정인이는 컵을 최대 50번 섞는다.

 

출력

공이 가장 왼쪽 컵에 있으면 1, 중앙에 있는 컵에 있으면 2, 오른쪽에 있는 컵에 있으면 3을 출력한다.


package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {

	var order string
	var read = bufio.NewReader(os.Stdin)
	fmt.Fscanln(read, &order)

	var cups = []bool{true, false, false}

	for _, o := range order {
		switch o {
		case 'A':
			cups[0], cups[1] = cups[1], cups[0]
		case 'B':
			cups[1], cups[2] = cups[2], cups[1]
		case 'C':
			cups[0], cups[2] = cups[2], cups[0]
		}
	}

	for i, c := range cups {
		if c {
			fmt.Println(i + 1)
			return
		}
	}
}

반응형

관련글 더보기

댓글 영역