๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
3๏ธโƒฃ Swift/Problem Solving

[Swift Algorithm] ๋’ค์ง‘๊ธฐ BOJ #1439

by seolhee2750 2021. 8. 19.
๋ฌธ์ œ ์„ค๋ช…

๋‹ค์†œ์ด๋Š” 0๊ณผ 1๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด S๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋‹ค์†œ์ด๋Š” ์ด ๋ฌธ์ž์—ด S์— ์žˆ๋Š” ๋ชจ๋“  ์ˆซ์ž๋ฅผ ์ „๋ถ€ ๊ฐ™๊ฒŒ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค. ๋‹ค์†œ์ด๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ํ–‰๋™์€ S์—์„œ ์—ฐ์†๋œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ˆซ์ž๋ฅผ ์žก๊ณ  ๋ชจ๋‘ ๋’ค์ง‘๋Š” ๊ฒƒ์ด๋‹ค. ๋’ค์ง‘๋Š” ๊ฒƒ์€ 1์„ 0์œผ๋กœ, 0์„ 1๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด S=0001100 ์ผ ๋•Œ,

  1. ์ „์ฒด๋ฅผ ๋’ค์ง‘์œผ๋ฉด 1110011์ด ๋œ๋‹ค.
  2. 4๋ฒˆ์งธ ๋ฌธ์ž๋ถ€ํ„ฐ 5๋ฒˆ์งธ ๋ฌธ์ž๊นŒ์ง€ ๋’ค์ง‘์œผ๋ฉด 1111111์ด ๋˜์–ด์„œ 2๋ฒˆ ๋งŒ์— ๋ชจ๋‘ ๊ฐ™์€ ์ˆซ์ž๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ, ์ฒ˜์Œ๋ถ€ํ„ฐ 4๋ฒˆ์งธ ๋ฌธ์ž๋ถ€ํ„ฐ 5๋ฒˆ์งธ ๋ฌธ์ž๊นŒ์ง€ ๋ฌธ์ž๋ฅผ ๋’ค์ง‘์œผ๋ฉด ํ•œ ๋ฒˆ์— 0000000์ด ๋˜์–ด์„œ 1๋ฒˆ ๋งŒ์— ๋ชจ๋‘ ๊ฐ™์€ ์ˆซ์ž๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋‹ค์†œ์ด๊ฐ€ ํ•ด์•ผํ•˜๋Š” ํ–‰๋™์˜ ์ตœ์†Œ ํšŸ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. S์˜ ๊ธธ์ด๋Š” 100๋งŒ๋ณด๋‹ค ์ž‘๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ๋‹ค์†œ์ด๊ฐ€ ํ•ด์•ผํ•˜๋Š” ํ–‰๋™์˜ ์ตœ์†Œ ํšŸ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ์ œ

์ž…๋ ฅ

0001100

์ถœ๋ ฅ

1

 

๋‚ด ๋ฌธ์ œ ํ’€์ด
import Foundation

var input = Array(readLine()!).map({Int(String($0))!})
var zero = 0 // 0 ๋ธ”๋ก์˜ ๊ฐœ์ˆ˜
var one = 0 // 1 ๋ธ”๋ก์˜ ๊ฐœ์ˆ˜
var check = true // ํ˜„์žฌ 1 ๋ธ”๋ก์ด ์œ ์ง€๋˜๊ณ  ์žˆ๋‹ค๋ฉด true, 0 ๋ธ”๋ก์ด ์œ ์ง€๋˜๊ณ  ์žˆ๋‹ค๋ฉด false

if input[0] == 0 { check = false; zero += 1 }
else { one += 1 }

for i in input[1...input.count-1] {
    if i == 0 && check == true { check = false; zero += 1 }
    else if i == 1 && check == false { check = true; one += 1 }
}

zero > one ? print(one) : print(zero)

๐Ÿ‘‰ ์ด ๋ฌธ์ œ๋Š” ๊ต‰์žฅํžˆ ๋‹จ์ˆœํ•˜๊ฒŒ๋„, 0์œผ๋กœ ์—ฐ์†๋œ ๋ธ”๋ก๊ณผ 1๋กœ ์—ฐ์†๋œ ๋ธ”๋ก์˜ ๊ฐœ์ˆ˜๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ํ•ต์‹ฌ!

  • if, else๋ฅผ ์ด์šฉํ•˜์—ฌ ๋งจ ์ฒ˜์Œ ์‹œ์ž‘ํ•˜๋Š” ์ˆซ์ž๋ฅผ ํŒŒ์•…ํ•ด์ค€ ํ›„,
    for๋ฌธ์„ ์ด์šฉํ•˜์—ฌ 0๋ธ”๋ก์˜ ๊ฐœ์ˆ˜์™€ 1๋ธ”๋ก์˜ ๊ฐœ์ˆ˜๋ฅผ ์•Œ์•„๋ƒˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ๊ตฌํ•œ 0๋ธ”๋ก, 1๋ธ”๋ก์˜ ๊ฐœ์ˆ˜ ์ค‘ ๋” ์ž‘์€ ๊ฒƒ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ–ˆ๋‹ค.

 

๐Ÿ’ก ํ”ผ๋“œ๋ฐฑ
  • ์ง€๋ฌธ์€ ๋ณต์žกํ•ด๋ณด์ด์ง€๋งŒ, ๊ต‰์žฅํžˆ ๋‹จ์ˆœํ•œ ๋ฌธ์ œ๋ผ ๊ธˆ๋ฐฉ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 


 

๋ฌธ์ œ

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

๋Œ“๊ธ€