ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ฉ๐ป๐ป ๋ฌธ์
4659๋ฒ: ๋น๋ฐ๋ฒํธ ๋ฐ์ํ๊ธฐ
์ข์ ํจ์ค์๋๋ฅผ ๋ง๋๋๊ฒ์ ์ด๋ ค์ด ์ผ์ด๋ค. ๋๋ถ๋ถ์ ์ฌ์ฉ์๋ค์ buddy์ฒ๋ผ ๋ฐ์ํ๊ธฐ ์ข๊ณ ๊ธฐ์ตํ๊ธฐ ์ฌ์ด ํจ์ค์๋๋ฅผ ์ํ๋, ์ด๋ฐ ํจ์ค์๋๋ค์ ๋ณด์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ์ด๋ค ์ฌ์ดํธ๋ค์ xvtp
www.acmicpc.net
โ๐ป ํ์ด
๐จ Go
// https://www.acmicpc.net/problem/4659
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
for {
var password string
fmt.Fscanln(reader, &password)
if password == "end" {
break
}
if checkPasswordAcceptable(password) {
fmt.Fprintf(writer, "<%s> is acceptable.\n", password)
} else {
fmt.Fprintf(writer, "<%s> is not acceptable.\n", password)
}
}
}
func checkPasswordAcceptable(password string) bool {
var prevLetter string
var totalVowelCount, vowelCount, consonantCount int
for i := 0; i < len(password); i++ {
var curLetter = string(password[i])
if isSame(prevLetter, curLetter) {
return false
}
if isVowel(curLetter) {
vowelCount++
totalVowelCount++
if vowelCount == 3 {
return false
}
consonantCount = 0
} else {
consonantCount++
if consonantCount == 3 {
return false
}
vowelCount = 0
}
prevLetter = curLetter
}
if totalVowelCount == 0 {
return false
}
return true
}
func isVowel(letter string) bool {
var vowels = []string{"a", "e", "i", "o", "u"}
for _, vowel := range vowels {
if letter == vowel {
return true
}
}
return false
}
func isSame(prevLetter, letter string) bool {
if prevLetter == letter && letter != "e" && letter != "o" {
return true
}
return false
}
๐จ Python3
# https://www.acmicpc.net/problem/4659
import sys
def check_password_acceptable(password):
prev_letter = ""
total_vowel_count, vowel_count, consonant_count = 0, 0, 0
for i in range(len(password)):
cur_letter = password[i]
if is_same(prev_letter, cur_letter):
return False
if is_vowel(cur_letter):
vowel_count += 1
total_vowel_count += 1
if vowel_count == 3:
return False
consonant_count = 0
else:
consonant_count += 1
if consonant_count == 3:
return False
vowel_count = 0
prev_letter = cur_letter
if total_vowel_count == 0:
return False
return True
def is_vowel(letter):
vowels = ["a", "e", "i", "o", "u"]
if letter in vowels:
return True
return False
def is_same(prev_letter, letter):
if prev_letter == letter and letter != "e" and letter != "o":
return True
return False
if __name__ == "__main__":
while True:
password = sys.stdin.readline().rstrip()
if password == "end":
break
if check_password_acceptable(password):
print("<{}> is acceptable.".format(password))
else:
print("<{}> is not acceptable.".format(password))
728x90
'dev > algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ / 1485๋ฒ / ์ ์ฌ๊ฐํ [Go][Python3] (0) | 2021.02.10 |
---|---|
BOJ / 2217๋ฒ / ๋กํ [Go][Python3] (0) | 2021.02.09 |
BOJ / 11656๋ฒ / ์ ๋ฏธ์ฌ ๋ฐฐ์ด [Go][Python3] (0) | 2021.02.07 |
BOJ / 10799๋ฒ / ์ ๋ง๋๊ธฐ [Go][Python3] (0) | 2021.02.06 |
BOJ / 17219๋ฒ / ๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ [Go][Python3] (0) | 2021.02.05 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
TAG
- ballet
- ๋งฅ๋ถ
- Macbook pro 2012 mid 13
- ์ด๋ถํ์
- ๋งฅ๋ถ ์ ๊ทธ๋ ์ด๋
- MongoDB
- dfs
- ๋งฅ๋ถํ๋ก
- ์คํ
- python3
- Algorithm
- AWS
- dp
- ์๋ฐ
- baekjoon
- Golang
- ๋ถํ ์ ๋ณต
- ํ๋ก์ด๋์์ฌ
- ์๊ฐ๊ต์ฒด
- ๋ฐฑ์ค
- java
- ํ
- go
- ํด์๋งต
- ์๊ณ ๋ฆฌ์ฆ
- BOJ
- ๋ธ๋ฃจํธํฌ์ค
- ๋ชฝ๊ณ ๋๋น
- ๋ฐ๋
- BFS
- Total
- Today
- Yesterday