프로그래머스 기초문제

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

Devleoper_yh 2025. 1. 2. 20:49
반응형

1. 문자열 str이 주어질 때, str을 출력하는 코드를 작성해 보세요.

제한사항

  • 1 ≤ str의 길이 ≤ 1,000,000
  • str에는 공백이 없으며, 첫째 줄에 한 줄로만 주어집니다.

입력 #1

HelloWorld!

 

출력 #1

HelloWorld!

 

제출 답안

import Foundation

let s1 = readLine()!
print(s1)

 

readLine() 이란?

https://developer.apple.com/documentation/swift/readline(strippingnewline:)

 

readLine(strippingNewline:) | Apple Developer Documentation

Returns a string read from standard input through the end of the current line or until EOF is reached.

developer.apple.com

사용자로부터 표준 입력(터미널이나 콘솔)을 통해 텍스트를 입력받는 데 사용된다.

이는 주로 간단한 CLI(Command Line Interface) 기반의 Swift 프로그램에서 사용자 입력을 처리할 때 유용.

기능 및 동작

  1. 입력 대기:
    • 사용자가 엔터 키를 누르기 전까지 입력을 기다린다.
  2. EOF(End Of File) 처리
    • 입력이 종료되거나 EOF가 발생하면 nil을 반환한다.
    • EOF는 파일 또는 입력 데이터가 종료되었음을 나타내는 중요한 개념으로, 올바른 데이터 처리 흐름을 유지하는 데 필수적
  3. 동기적 실행:
    • 입력을 처리하기 전까지 실행을 차단(block)한다.

2. 정수 a와 b가 주어집니다. 각 수를 입력받아 입출력 예와 같은 형식으로 출력하는 코드를 작성해 보세요.

제한사항
  • -100,000 ≤ a, b ≤ 100,000
입출력 예

입력 #1

4 5

 

출력 #1

a = 4
b = 5

 

제출 답안

import Foundation

let n = readLine()!.components(separatedBy: [" "]).map { Int($0)! }
// readLine()! - 사용자로부터 입력을 받는다. 반환값: 옵셔널(String?), 값이 nil이 아닐 경우 강제로 언래핑(!)하여 String으로 변환한다.
// components(separatedBy: [" "]) - 문자열을 특정 구분자로 나눠 배열로 반환한다.
// ["10", "20", "30"]
// .map { Int($0)! } - 문자열 배열의 각 요소를 정수(Int)로 변환한다.
// 배열의 각 요소 $0를 순회하고 Int로 변환
// 변환 결과는 새로운 배열에 저장한다.

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

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

3. 문자열 str과 정수 n이 주어집니다.
str이 n번 반복된 문자열을 만들어 출력하는 코드를 작성해 보세요.

제한사항

  • 1 ≤ str의 길이 ≤ 10
  • 1 ≤ n ≤ 5

입출력 예

입력 #1

string 5

출력 #1

stringstringstringstringstring

 

제출 답안

import Foundation

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

let result = String(repeating: s1, count: a)
print(result)

 

문자열 반복 메서드로 구현했다.

https://developer.apple.com/documentation/swift/string/init(repeating:count:)-23xjt

 

init(repeating:count:) | Apple Developer Documentation

Creates a new string representing the given string repeated the specified number of times.

developer.apple.com

String(repeating: "문자열", count: a)


4. 영어 알파벳으로 이루어진 문자열 str이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.


제한사항

  • 1 ≤ str의 길이 ≤ 20
    • str은 알파벳으로 이루어진 문자열입니다.

입출력 예

입력 #1

aBcDeFg

출력 #1

AbCdEfG

 

제출 답안

import Foundation

// 입력받은 값 s1
let s1 = readLine()!

// 결과를 저장할 빈 문자열 변수 초기화
var result = ""

// 문자열의 문자를 순차적으로 처리
for char in s1 {
    // 문자가 소문자일 경우
    if char.isLowercase {
        // 소문자를 대문자로 변환하여 result에 추가
        result += char.uppercased()
    } else {
        // 대문자를 소문자로 변환하여 result에 추가
        result += char.lowercased()
    }
}
print(result)

https://developer.apple.com/documentation/swift/character/uppercased()/

 

uppercased() | Apple Developer Documentation

Returns an uppercased version of this character.

developer.apple.com

https://developer.apple.com/documentation/swift/character/lowercased()

 

lowercased() | Apple Developer Documentation

Returns a lowercased version of this character.

developer.apple.com

https://developer.apple.com/documentation/swift/character/islowercase

 

isLowercase | Apple Developer Documentation

A Boolean value indicating whether this character is considered lowercase.

developer.apple.com


 

5. 다음과 같이 출력하도록 코드를 작성해 주세요.


출력 예시

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

 

제출 답안

import Foundation

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

 

\를 사용해서 특수 문자를 이스케이프 할 수 있다.

\\는 백슬래시 출력

\'는 작은따옴표 출력

\" 는 큰 따옴표 출력


반응형