총 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

+ Recent posts