

<코드>
//
// main.swift
// BOJ
//
// Created by leehwajin on 2022/12/24.
//
import Foundation
let n = Int(readLine()!)!
//영어배열채워넣기
var arr:Array<Int> = []
for _ in 0...25{
arr.append(0)
}
var numbers = 0
for times in 1...n{
//문자 받기
let input = Array(readLine()!)
//arr초기화
for i in 0...arr.endIndex-1{
arr[i] = 0
}
//영어와 숫자 매칭시키기
var input1:Array<Int> = []
for i in 0...(input.endIndex-1){
input1.append(Int(input[i].asciiValue!))
if (input1[i] >= 97) {
input1[i] -= 97
}else if (input1[i] >= 65){
input1[i] -= 65
}
}
//본격적으로 제발
for i in 0...input.endIndex-1 {
arr[input1[i]] += 1
if arr[input1[i]] != 1{
if input[i] == input[i-1]{
if i == input.endIndex-1{
numbers += 1
break
}
continue
}else{break}
}
else if(i == input.endIndex-1) {
numbers += 1
}
}
if times == n{
print(numbers)
}
}
쓰다보니 지저분한 코드가 되었지만,,,,
arr함수에 0~25까지 0으로 세팅
입력값은 대/소문자 상관없이 a는 0, b는 1... 로 변환시켜서(input > input1)
input1에 1이 들어가있을 경우 arr[1]에 1을 추가해주고, 추가했을때 1보다 높은 경우(중복문자)
앞문자를 확인하여 같은 문자면 continue 다른 문자면 그룹단어가 아니라고 판단 후 break처리를 함으로써
그룹단어의 갯수를 세었다.
<문제를 통해 배운점>
스위프트 문법에선 빈 배열을 만들었으면 그 안에 쓰레기 값이 들어가있는게 아니고 정말 빈 배열이기 때문에(칸자체가 없어서 대입이 안됨)
새 요소를 추가하려면 append함수를 꼭 써주어야 한다!!!!
(C언어에서는 배열을 선언할때 배열의 칸갯수를 지정할 수 있어서 지정시 안에 쓰레기값이 들어갔지만, 스위프트는 지정할 수가 없기 때문에 !!!! 쓰레기값도 안들어가있는 정말 '빈배열'이다 !!!!)
'swift문법' 카테고리의 다른 글
| 속성과 메서드 한번에 정리. 이젠 까먹지 말자. (1) | 2024.01.08 |
|---|---|
| [Swift] Part17_중첩타입 (0) | 2022.08.28 |
| [Swift] Part16_메서드 디스패치 (0) | 2022.08.25 |
| [Swift] Part15_프로토콜 (0) | 2022.08.24 |
| [Swift] Part14_확장(Extensions) (0) | 2022.08.23 |