torus711 のアレ

主に競技プログラミングの問題について書きます.PC 以外だと数式が表示されないかもしれないです

Codeforces #200, Division 2, A : Magnets

概要

N 個の磁石を指定された順番と向きで一列に並べる。
隣り合う極が同じ場合、二つの磁石がくっついて一つのグループになる。
そうでないとき、磁石は反発するので違うグループとなる。
全てを並べたとき、いくつのグループができるか求めよ。

解法

同じ向きで並んでいるもの同士はくっつくので、「同じものの連続」がいくつあるかが答えになります。

コード

main = do
	n <- readLn
	res <- length . group <$> replicateM n getLine
	print res