총 124문제가 기초 트레이닝 문제로 주어졌고 이 문제를 미리 다 풀어버리면 그날짜가 되서 체크가 완료되는거같다.

우선 다 채우지 않아 바로 day3,4가 완료되지 않아서 아쉽.

다채워진 날짜도 있으나 날짜가 되지 않아서 그런가 "마지막문제를 푼날이 체크됩니다!" 라고 써진것과 다르게 날짜가 체크되어 있지 않다

아무튼 프로그래머스의 기초 트레이닝 도전과제를 계속 이어 나가자.

기존에 다 풀지 않은 부분만 쭉 써나갈것이다.

기초 라는 단어가 들어가서인지 대부분 문법문제였다.

현재 62 문제가 남았으나 3,4일차 도전과제는 3개뿐이라 이글에서 끝내버릴거다. 그리고 오늘 남은 60개정도의 문제를 끝내고 다음 5번글은 같은 사이트의 다른 서비스를 찾아볼까한다.

 

1. 문자열 섞기

두 문자열의 각 문자가 앞에서부터 서로 번갈아가면서 한 번씩 등장하는 문자열을 만들어 return

  //  1 ≤ str1의 길이 = str2의 길이 ≤ 10
  guard str1.count > 0, str2.count > 0, str1.count < 11, str2.count < 11, str1.count == str2.count else { return "" }
  //  return (0..<str1.count).map { i in
  //    let index = str1.index(str1.startIndex, offsetBy: i)
  //    return "\(str1[index])\(str2[index])"
  //  }.joined()
  
  let resultArry: [String] = Array<Int>( 0..<str1.count ).map { i in
      let index = str1.index(str1.startIndex, offsetBy: i)
      return "\(str1[index])\(str2[index])"
  }
  return resultArry.joined()

같은 길이라 그냥 맵으로 반복 돌려서 합치면 끝 인데 이상하게 런타임 에러가 발생해서 joined 하는 부분을 나눠주고 타입추론이 생략을 해주려고 타입을 지정해줌.

 

2. 문자 리스트를 문자열로 변환하기

return arr.joined()

joined를 아느냐 또는 문자열 병합을 아는가를 묻는 문제

 

3. 조건문자열

">", "=" : n >= m

"<", "=" : n <= m

">", "!" : n > m

"<", "!" : n < m

앞 두개 부호가 주어지고 n과 m을 비교한 값을 반환하는 문제

enum으로 부호를 나눠서 해볼까 생각했더니 라인이 너무 많아졌다

  enum CalcStr {
    // <, > ,<=, >=
    case left, right, leftEqual, rightEqual
  }
  
  func boolToInt(_ b: Bool) -> Int {b ? 1 : 0}
  
  //  1 ≤ n, m ≤ 100
  guard n >= 1, n <= 100, m >= 1, m <= 100 else { return -1 }
  guard ineq == ">" || ineq == "<", eq == "=" || eq == "!" else { return -1 }
  /**
   ">", "=" : n >= m
   "<", "=" : n <= m
   ">", "!" : n > m
   "<", "!" : n < m
   */
  var calcStr: CalcStr
  if ineq == ">" {
    calcStr = eq == "!" ? .right : .rightEqual
  } else {
    calcStr = eq == "!" ? .left : .leftEqual
  }
  
  switch calcStr {
  case .left: return boolToInt(n < m)
  case .right: return boolToInt(n > m)
  case .leftEqual: return boolToInt(n <= m)
  case .rightEqual: return boolToInt(n >= m)
  }

사실은 ineq 와 eq를 문자열로 합해서 그대로 case문으로 돌리면 10라인도 안되서 끝날 문제....

 

뭐 아무튼 이거로 day4일치까지 끝이 났다

 

day5~25까지 있는데 남은 문제가 59문제라 오늘 좀 하면 대부분 끝나지 않을까 싶다 기한이 넘으면 day5,6에 대한 포스트를하겠다.

반응형

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

6. day7 반복문, day8 조건문, 문자열  (0) 2024.06.27
5. day5 조건문, day6 조건문 반복문  (0) 2024.06.26
3. day2 출력,연산  (0) 2024.06.24
2. day1 출력  (0) 2024.06.24
1-1. 잡담  (0) 2024.06.24

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

프로그래머스 사이트에는 도전과제 서비스가 있었고 해당 내용으로 재활활동을 해볼까한다

시작은 역시 출력

 

 

 

 

 

 

1.  그대로 출력

let s1 = readLine()!
print(s1)

 

2. 한줄 숫자 두개입력 및 출력 형식 지정

let n = readLine()!.components(separatedBy: [" "]).map { Int($0)! }

let (a, b) = (n[0], n[1])

 

print("a =", a)

print("b =", b)

 

3.한줄에 단어와 숫자가 주어질때 숫자만큼 반복 출력하기

let inp = readLine()!.components(separatedBy: [" "]).map { $0 }
let (s1, a) = (inp[0], Int(inp[1])!)

for _ in 0..<a {
  print(s1, terminator: "")
}

 

4. 영단어를 입력받고 대문자면 소문자로 소문자면 대문자로 출력하기

let s1 = readLine()!
let bigEndValue = "Z".unicodeScalars.first!.value

for unicode in s1.unicodeScalars {
  let printValue = String(unicode)
  if unicode.value > bigEndValue {
    print(printValue.uppercased(), terminator: "")
  } else {
    print(printValue.lowercased(), terminator: "")
  }
}

제출하고 타 사람의 답변을 볼 수 있는데 

isUppercase, isLowercase 가 있었다. 솔직히 잊고있었다.

이거로 출력했으면 출력문은 한두줄로 할 수 있었을텐데 역시 타 제출답보기는 좋은 기능이다 

 

5. 특수문자 출력

print("!@#$%^&*(\\'\"<>?:;")

문법 관련문제

 

반응형

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

4. day3 연산, day4 연산 조건문  (0) 2024.06.25
3. day2 출력,연산  (0) 2024.06.24
1-1. 잡담  (0) 2024.06.24
1. [PCCE 기출문제] 1번 / 출력  (0) 2024.06.24
0. 시작  (0) 2024.06.24

내가 프로그래머스 사이트의 서비스를 잘못알았다 swift가 없는게 아니라 해당문제에 없는거였다.

추가로 일일 도전과제를 재밌어 보이는 시스템이 있어서 이걸 목표로 전환해볼거다.

반응형

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

4. day3 연산, day4 연산 조건문  (0) 2024.06.25
3. day2 출력,연산  (0) 2024.06.24
2. day1 출력  (0) 2024.06.24
1. [PCCE 기출문제] 1번 / 출력  (0) 2024.06.24
0. 시작  (0) 2024.06.24

swift를 연습하려고 문제를 켜봤지만 언어 선택에 swift가 없다!

이 처참함에 눈물을 금치 못하고 일단 있는 언어로 한번 하고 다시 swift로 해보는식으로 간다

 

1번 / 출력

빈칸 채우기 문제로 그냥 출력문에 들어갈 값을 넣는 문제 ~

출력예시:

Spring is beginning
13
310
        String msg =  
        int val1 =  
        String val2 =  

        System.out.println(msg);
        System.out.println(val1 + 10);
        System.out.println(val2 + "10");

 

swift > 

let msg: String = "Spring is beginning"
let val1: Int = 3
let val2: String = "3"

print(msg)
print(val1 + 10)
print(val2 + "10")
반응형

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

4. day3 연산, day4 연산 조건문  (0) 2024.06.25
3. day2 출력,연산  (0) 2024.06.24
2. day1 출력  (0) 2024.06.24
1-1. 잡담  (0) 2024.06.24
0. 시작  (0) 2024.06.24

길어진 백수생활에 이제 슬슬 뭐라도 해야할듯하여 다시 코딩을 좀 해야겠다

요새 모바일은 swift를 안쓴지도 오래되서 swift를 연습할겸 프로그래머스 사이트에 있는 코딩 테스트문제들을 swift 작성 해볼까한다.

우선 swift 언어 문법이 기억이 잘 안나서 lv0부터 시작~

 

떨어지는 통장잔고에 취직 해야하긴하는데라 생각이 들어도 왜이리 하기 싫을까?

 

반응형

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

4. day3 연산, day4 연산 조건문  (0) 2024.06.25
3. day2 출력,연산  (0) 2024.06.24
2. day1 출력  (0) 2024.06.24
1-1. 잡담  (0) 2024.06.24
1. [PCCE 기출문제] 1번 / 출력  (0) 2024.06.24

뱃지카운트 자체는 서버에서 내려준대로 해야되서 난감했는데 

따로 설정가능한 기능이있었다

      application.applicationIconBadgeNumber = 0

이거 인데 설정해줬더니

디플리케이션 경고가 뜬다.

해서 권장해주는 방법 대로 변경

  if #available(iOS 16.0, *) {
      UNUserNotificationCenter.current().setBadgeCount(0) { _ in }
    } else {
      application.applicationIconBadgeNumber = 0
    }

 

17부터 디플인데 왜 16으로 해주라는건지는 모르겠다.

반응형

hive로 어떻게든 해보려다가 조건을 붙여서 하는게 영 너무 힘들어서 결국 sqlite로 넘어가려고 flutter용 sqlite인 sqflite를 설치해서 사용하려고 하던중 

안드로이드는 잘 돌아가나 ios에서 제목과같은 오류가 나면서 안된다.

In Podfile:
        sqflite (from `.symlinks/plugins/sqflite/darwin`)

    Specs satisfying the `sqflite (from `.symlinks/plugins/sqflite/darwin`)` dependency were found, but they required a higher minimum deployment target.

평소처럼 구글님의 은혜를 받아 우선 번역기를 돌려보면 

`sqflite(`.symlinks/plugins/sqflite/darwin`에서)` 종속성을 충족하는 사양이 발견되었지만 더 높은 최소 배포 대상이 필요했습니다.

라고하니 단순히 최소 배포값이 더 높은건가 싶어 sqflite 페이지를 살펴봐도 최소 버전에대한 안내가없다.

결국 그냥 평소에 많이 잡는 12로 하자싶어 12로 변경하고 pods폴더 날리고 podfile.lock파일도 날리고 거기에 굳이 필요하나 싶지만 flutter clean도 요청해주고 다시 설치하니 돌아간다.

 

참고로 cocoapod이 설치되는 지원 버전은 podfile에 정의되어있다.

버전별로 다를수있으나 내가 쓰는 flutter에서의 자동으로 만들어진 Podfile에서는

# Uncomment this line to define a global platform for your project
# platform :ios, '11.0'

이렇게 시작한다.

이 문서의 두번째 주석을 풀어주고 값을 12로 변경해줬다.

# Uncomment this line to define a global platform for your project
platform :ios, '12.0'

 

반응형

+ Recent posts