프로그래머스 기초문제

[프로그래머스 기초문제] Day 2

Devleoper_yh 2025. 1. 3. 21:55
반응형

1. 두 정수 ab가 주어질 때 다음과 같은 형태의 계산식을 출력하는 코드를 작성해 보세요.

a + b = c

제한사항

  • 1 ≤ a, b ≤ 100

입출력 예

입력 #1

4 5

출력 #1

4 + 5 = 9

 

제출 답안

import Foundation

let n = readLine()!.components(separatedBy: [" "]).map { Int($0)! }
let (a, b) = (n[0], n[1])
let result: Int = a + b

print("\(a) + \(b) = \(result)")

 


2.  두 개의 문자열 str1, str2가 공백으로 구분되어 입력으로 주어집니다. 입출력 예와 같이 str1 str2을 이어서 출력하는 코드를 작성해 보세요.

제한사항

  • 1 ≤ str1, str2의 길이 ≤ 10

입출력 예

입력 #1

apple pen

출력 #1

applepen

입력 #2

Hello World!

출력 #2

HelloWorld!

제출 답안

import Foundation

// 입력을 받아 공백으로 나누고 배열로 저장
let inp = readLine()!.components(separatedBy: [" "]).map { $0 }

// 첫 번째와 두 번째 요소를 변수에 할당
let (s1, s2) = (inp[0], inp[1])

// 문자 붙여 출력
print(s1 + s2)

3. 문자열 str이 주어집니다.
문자열을 시계방향으로 90도 돌려서 아래 입출력 예와 같이 출력하는 코드를 작성해 보세요.

제한사항

1 ≤ str의 길이 ≤ 10


입출력 예

입력 #1

abcde

출력 #1

a
b
c
d
e

제출 답안

import Foundation

let s1 = readLine()!

// s1의 문자를 한 줄씩 출력
for char in s1 {
    print(char)
}

4. 자연수 n이 입력으로 주어졌을 때 만약 n이 짝수이면 "n is even"을, 홀수이면 "n is odd"를 출력하는 코드를 작성해 보세요.

제한사항

  • 1 ≤ n ≤ 1,000

입출력 예

입력 #1

100

출력 #1

100 is even

입력 #2

1

출력 #2

1 is odd

 

제출 답안

import Foundation

let a = Int(readLine()!)!

if (a % 2 == 0) {
    print("\(a) is even")
} else {
    print("\(a) is odd")
}

5. 문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.

제한사항

  • my_string와 overwrite_string은 숫자와 알파벳으로 이루어져 있습니다.
  • 1 ≤ overwrite_string의 길이 ≤ my_string의 길이 ≤ 1,000
  • 0 ≤ s  my_string의 길이 - overwrite_string의 길이

입출력 예

my_string overwrite_string s result
"He11oWor1d" "lloWorl" 2 "HelloWorld"
"Program29b8UYP" "merS123" 7 "ProgrammerS123"

입출력 예 설명

입출력 예 #1

  • 예제 1번의 my_string에서 인덱스 2부터 overwrite_string의 길이만큼에 해당하는 부분은 "11oWor1"이고 이를 "lloWorl"로 바꾼 "HelloWorld"를 return 합니다.

입출력 예 #2

  • 예제 2번의 my_string에서 인덱스 7부터 overwrite_string의 길이만큼에 해당하는 부분은 "29b8UYP"이고 이를 "merS123"로 바꾼 "ProgrammerS123"를 return 합니다.

제출 답안

import Foundation

func solution(_ my_string:String, _ overwrite_string:String, _ s:Int) -> String {
     // 문자열을 수정할 수 있도록 배열로 변환
    var result = Array(my_string)
    
    // 덮어쓰기할 문자열의 길이만큼 반복하며 수정
    for (i, char) in overwrite_string.enumerated() {
        result[s + i] = char
    }
    
    // 배열을 다시 문자열로 변환하여 반환
    return String(result)
}

 

https://developer.apple.com/documentation/swift/array/enumerated()

 

enumerated() | Apple Developer Documentation

Returns a sequence of pairs (n, x), where n represents a consecutive integer starting at zero and x represents an element of the sequence.

developer.apple.com

주요 포인트

1. 문자열을 수정 가능하게 배열로 변환

2. enumerated()를 활용한 인덱스와 값 접근

3. 배열을 다시 문자열로 변환

 

반응형