ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ๋ฌธ์ œ

 

1966๋ฒˆ: ํ”„๋ฆฐํ„ฐ ํ

์ฒซ ์ค„์— test case์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ test case์— ๋Œ€ํ•ด์„œ ๋ฌธ์„œ์˜ ์ˆ˜ N(100์ดํ•˜)์™€ ๋ช‡ ๋ฒˆ์งธ๋กœ ์ธ์‡„๋˜์—ˆ๋Š”์ง€ ๊ถ๊ธˆํ•œ ๋ฌธ์„œ๊ฐ€ ํ˜„์žฌ Queue์˜ ์–ด๋–ค ์œ„์น˜์— ์žˆ๋Š”์ง€๋ฅผ ์•Œ๋ ค์ฃผ๋Š” M(0์ด์ƒ N๋ฏธ๋งŒ)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ

www.acmicpc.net


โœ๐Ÿป ํ’€์ด

๐ŸŽจ Go

// https://www.acmicpc.net/problem/1966
// ํ์˜ ๊ฐœ๋…์ด ์‘์šฉ๋œ ๋ฌธ์ œ
package main

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

type printValues struct {
	initIndex int
	value     int
}

func main() {
	reader := bufio.NewReader(os.Stdin)
	writer := bufio.NewWriter(os.Stdout)
	defer writer.Flush()

	var t int
	fmt.Fscanln(reader, &t)
	for i := 0; i < t; i++ {
		var n, m int
		fmt.Fscanln(reader, &n, &m)

		var queue = make([]printValues, n)
		for j := 0; j < n; j++ {
			fmt.Fscanf(reader, "%d ", &queue[j].value)
			queue[j].initIndex = j
		}

		printCount := 0
		for len(queue) > 0 {
			printIndex := 0
			for i := 1; i < len(queue); i++ {
				if queue[0].value < queue[i].value {
					printIndex = i
					break
				}
			}
			if printIndex > 0 {
				queue = append(queue[1:], queue[0])
			} else {
				printCount++
				if queue[0].initIndex == m {
					fmt.Fprintln(writer, printCount)
				}
				queue = queue[1:]
			}
		}
	}
}

๐ŸŽจ Python3

# https://www.acmicpc.net/problem/1966
# ํ์˜ ๊ฐœ๋…์ด ์‘์šฉ๋œ ๋ฌธ์ œ
import sys

if __name__ == "__main__":
    t = int(sys.stdin.readline())
    for i in range(t):
        n, m = list(map(int, sys.stdin.readline().split()))
        q = list(map(int, sys.stdin.readline().split()))
        queue = []
        for j, v in enumerate(q):
            queue.append((j, v))
        print_count = 0
        while len(queue) > 0:
            if queue[0][1] == max(q):
                print_count += 1
                if queue[0][0] == m:
                    print(print_count)
                    break
                else:
                    q.pop(0)
                    queue.pop(0)
            else:
                q.append(q.pop(0))
                queue.append(queue.pop(0))
728x90
๋Œ“๊ธ€