Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- flowchart
- github
- ios
- git
- 백준
- 흐름도
- 깃허브
- 플로우차트
- APNS
- swift
- 계산기
- git사용법
- 애플
- 정규표현식
- JSONSerialization
- git이란
- github란
- 깃
- UIViewController
- 플로우 차트
- GitvsGithub
- 정규식
- 스위프트
- OS
- xcode
- Regex
- PushNotification
- Git과 Github차이점
- flow chart
- 순서도
Archives
- Today
- Total
Diana의 iOS 개발일기
[백준 swift] 문자열 - 1157번, 1152번, 5622번, 1316번 본문
1157번 - 단어 공부
import Foundation
let alpha = readLine()!.uppercased()//apple
alpha.forEach {
print(String($0)) //A,P,P,L,E
}
해당 문제를 풀기 전 String에 forEach를 취할 시 위와 같은 결과가 나온다는 것을 알고 시작하자.
import Foundation
let alpha = readLine()!.uppercased()
var array = [String:Int]()
alpha.forEach {
if array[String($0)] == nil{
array[String($0)] = 1
}else{
array[String($0)]! += 1
}
}
var result = [String]()
for key in array.keys {
if array[key] == array.values.max(){
result.append(key)
}
}
print(result.count == 1 ? result[0] : "?")
1152번 - 단어의 개수
import Foundation
let alpha = readLine()!.components(separatedBy: " ")
var array = alpha.filter{($0).count > 0}
print(array.count)
5622번 - 다이얼
import Foundation
let written = readLine()!
let alpha = Array(written)
var array = alpha.reduce(0, {$0 + changeToNum(alpha: String($1))})
print(array)
func changeToNum (alpha: String) -> Int{
switch alpha {
case "A","B","C":
return 3
case "D","E","F":
return 4
case "G","H","I":
return 5
case "J","K","L":
return 6
case "M","N","O":
return 7
case "P","Q","R","S":
return 8
case "T","U","W":
return 9
default:
return 10
}
}
더 짧게 변경한 버전
import Foundation
let alpha = readLine() ?? ""
var result = 0
for char in alpha{
switch char {
case "A","B","C":
result += 3
case "D","E","F":
result += 4
case "G","H","I":
result += 5
case "J","K","L":
result += 6
case "M","N","O":
result += 7
case "P","Q","R","S":
result += 8
case "T","U","V":
result += 9
default:
result += 10
}
}
print(result)
1316번 - 그룹단어 체커
import Foundation
let num = Int(readLine()!)!
var dic = [String: Int]()
var add = 0
for _ in 1...num{
var count = 1
var recount = 1
var char = Array(readLine()!)
var clone = char
clone.sort()
clone.append("?")
char.append("?")
for i in 0...clone.count-2{
if(clone[i] == clone [i+1]){
count += 1
}else{
dic.updateValue(count, forKey: "\(clone[i])")
count = 1
}
}
for j in 0...char.count-2{
if(char[j] == char[j+1]){
recount += 1
}else{
if(dic[String(char[j])] == recount){
if(j == char.count-2){
add += 1
}
}else{
break
}
recount = 1
}
}
}
print(add)
너무 난잡하게 짠듯 해서 나중에 수정 예정입니다..
'알고리즘 > 백준' 카테고리의 다른 글
[백준 swift] 재귀 - 10872번, 10870번 (0) | 2021.04.13 |
---|---|
[백준 swift] 기본수학 1 - 1712번, 2292번, 2869번, 10250번 (0) | 2021.04.09 |
[백준 swift] 함수 - 1065번 (0) | 2021.04.04 |
[백준 swift] 1차원 배열 - 1546번, 4344번 (0) | 2021.04.01 |
[백준 swift] while문 - 1110번 (0) | 2021.04.01 |