day1이 너무 빨리 끝나서 day2를 바로 시작

1. 덧셈식 출력하기

print(a, "+", b, "=", a+b)

입력 엔 출력 ~

 

2. 문자열 붙여서 출력

print(s1,s2, separator: "", terminator: "")

그냥 변수 하나로 붙여서 출력하는게 더 빨랐겠다 싶다

 

3. 문자열 돌리기

let s1 = readLine()!
for c in s1 {
    print(c)
}

이건 뭘 테스트하는지 모르겠다

 

4. 홀짝 구분하기

let a = Int(readLine()!)!

print(a,"is \(a%2 == 0 ? "even" : "odd")")

이번엔 나머지 연산자 문법 문제

 

5. 문자열 겹쳐쓰기

주어진 문자열에 지정한 인덱스부터 문자 변경하기

func solution(_ my_string:String, _ overwrite_string:String, _ s:Int) -> String {
  //my_string와 overwrite_string은 숫자와 알파벳으로 이루어져 있습니다.
  //1 ≤ overwrite_string의 길이 ≤ my_string의 길이 ≤ 1,000
  let regexPattern = "^[0-9a-zA-Z]*${1,1000}"
  guard let _ = my_string.range(of: regexPattern, options: .regularExpression) else {return ""}
  guard let _ = overwrite_string.range(of: regexPattern, options: .regularExpression) else {return ""}
  //0 ≤ s ≤ my_string의 길이 - overwrite_string의 길이
  guard my_string.count - overwrite_string.count >= 0 else { return "" }
  
  let overwrite_start_index = my_string.index(my_string.startIndex, offsetBy: s)
  let overwrite_end_index = my_string.index(overwrite_start_index, offsetBy: overwrite_string.count)
  
  let suffix = my_string[my_string.startIndex..<overwrite_start_index]
  let prefix = my_string[overwrite_end_index...]

  return String(suffix + overwrite_string + prefix)
}

처음 문제를 봤을때 덮어쓰는 단어의 시작과 끝 인덱스를 구해서 그대로 더하면 되겠다해서 제출했고 앞부분의 제한사항은 그냥 넣어봤다 문제 자체답에는 없어도 무방.

타인의 답으로는 replaceSubrange라는걸 이용한 엄청간단해보이는것과 prefix(s),suffix(x) 라는 걸로 제출되어있다

내가 하려던게 이미 구현되어있구나하고 모르는게 많았구나 싶다.

 

반응형

'iOS > 프로그래머스 - 코딩테스트 문제' 카테고리의 다른 글

5. day5 조건문, day6 조건문 반복문  (0) 2024.06.26
4. day3 연산, day4 연산 조건문  (0) 2024.06.25
2. day1 출력  (0) 2024.06.24
1-1. 잡담  (0) 2024.06.24
1. [PCCE 기출문제] 1번 / 출력  (0) 2024.06.24

이전 시큐리티기능을 사용하지 않고 따로 히든텍스트라든 변수를 정의해줘서 비밀번호 가리고 보이고하는 기능을 구현해놨었다

해당 스크린을 테스트하기위해 테스트코드를 짜놨었는데....

 

이번 최신 버전을 배포하던중 텍스트필드에 중대한 버그가 발견되어 텍스트필드의 시큐리티 기능을 이용하는 방식으로 전환했다

그리고.. 그 이후로 UI테스트코드를 통과하지 못하고있다

도저히 잘못된점을 모르겠어서 뷰를 하나하나 스택쌓아가듯이 찾아 나아가보지만 여전히 해당 아이디를 가진 텍스트필드를 찾을 수 없다고 오류를 뱉고있었다.

 

나의 이 멍청한 시도를 다른이는 하지 않기를 기도하며 문제점을 여기에 적는다

나는 해당 부분을 이렇게 정의하며 찾아보고있었다.

- 라인2 오류 -

let loginvcContentView = app.otherElements["loginvcScrollViewContentView"]
let pwTextField = loginvcContentView.textFields["loginvcPwTextField"]

UITest에 대해 누가 알려주지 않아 거의 그냥 막코딩이라 변수이름이라던가 방법은 그냥 넘어가줬으면 좋겠다

문제는 loginvcContentView에서 찾는 엘레먼트 타입이였다.

텍스트필드에

textField.isSecureTextEntry = true

라고 정의를 해주면 textFields로는 찾을 수 없고

아래와 같이 해줘야한다.

let loginvcContentView = app.otherElements["loginvcScrollViewContentView"]
let pwTextField = loginvcContentView.secureTextFields["loginvcPwTextField"]

그렇다 

저 속성하나 켜줬다고 textField가 아닌 secureTextFields로만 찾을 수 있게되었다.

망할

 

반응형

'iOS > swift' 카테고리의 다른 글

No such module ~~ 설치되지 않는 Snapkit 문제  (0) 2023.04.12
ios - Admob 에러코드 메모  (0) 2023.03.21
Alamofire.AFError Code  (0) 2022.10.06
Block Based KVO, iOS - contentSize  (0) 2022.09.27
Date 끼리의 비교  (0) 2022.08.04

+ Recent posts