안녕하세요! 오늘은 프로그래머스 문자열 내 p와 y의 개수, 문자열 내림차순으로 배치하기, 문자열 다루기 기본 세문제를 풀어보았습니다!
1. 문자열 내 p와 y의 개수
문자열 내 p, P, y, Y의 개수를 비교하는 문제입니다.
String[String.index(String.startIndex, offsetBy: index)]를 이용해 문자열의 한글자씩 가져올 수 있습니다.
이를 통해 P와 p 그리고 Y와 y의 개수를 counting해 같으면 true 다르면 false를 리턴해주면 됩니다!
import Foundation
func solution(_ s:String) -> Bool
{
var ans:Bool = false
var count = s.count
var pCount = 0, yCount = 0
for i in 0..<count {
if s[s.index(s.startIndex, offsetBy: i)] == "P" || s[s.index(s.startIndex, offsetBy: i)] == "p" {
pCount += 1
}
else if s[s.index(s.startIndex, offsetBy: i)] == "Y" || s[s.index(s.startIndex, offsetBy: i)] == "y" {
yCount += 1
}
}
if pCount == yCount{
ans = true
}
return ans
}
2. 문자열 내림차순으로 배치하기
문자열 내림차순으로 배치하기 문제는 문자열을 Character배열로 옮겨서 Sorted 후 다시 문자열로 합쳐주는 문제입니다.
문자열을 Character 배열로 옮기기 위해 Charcater.append(String[String.index(String.startIndex, offsetBy: index)] 를 이용합니다.
그 후 sorted뒤에 후행 클로저를 이용하여 내림차순으로 sort할 수 있습니다.
character배열은 String([Character]) 형식으로 형변환해줍니다.
func solution(_ s:String) -> String {
var answer:String = ""
var character:[Character] = [Character]()
for i in 0..<s.count {
character.append(s[s.index(s.startIndex, offsetBy: i)])
}
let result = character.sorted(by: {(character1:Character, character2:Character) -> Bool in
return character1 > character2
})
print(character)
answer = String(result)
return answer
}
3. 문자열 다루기 기본
문자열 다루기 문제는 문자열의 길이가 4와 6이면서 숫자로만 이루어진 문자열일때 true를 return하고 나머지 경우에 false를 return합니다.
그러므로 문자열의 길이를 확인하고 for문을 돌면서 String을 Int로 형변환하면서 옵셔널 Int가 아니라 nil이 되면 false로 return해줍니다.
그리고 모든 경우의 수를 통과하면 true를 return해주면 문제가 해결됩니다.
func solution(_ s:String) -> Bool {
var count = s.count
if count == 4 || count == 6 {
for i in 0..<count {
let a = Int(String(s[s.index(s.startIndex, offsetBy: i)]))
if a == nil {
return false
}
}
}
else {
return false
}
return true
}
오늘도 여기까지 읽어주셔서 감사합니다!
좋은 하루 되세요!
'Algorithm Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스] 이상한 문자 만들기, 자연수 내림차순으로 배치하기, 정수 제곱근 판별 with Swift (0) | 2021.12.07 |
---|---|
[프로그래머스] 서울에서 김서방 찾기, 소수 찾기, 시저 암호 (0) | 2021.12.07 |
[프로그래머스] 나누어 떨어지는 숫자 배열, 두 정수 사이의 합, 문자열 내 마음대로 정렬하기 with Swift (0) | 2021.12.06 |
[프로그래머스] 코딩테스트 연습 2018 KAKAO BLIND RECRUITMENT [1차] 다트 게임 with Swift (0) | 2021.12.05 |
[프로그래머스] [1차] 비밀지도, 가운데 글자 가져오기 with Swift (0) | 2021.12.04 |