백준 1000번 - A+B

이설군·2022년 6월 9일
0

백준

목록 보기
2/52

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

첫째 줄에 A+B를 출력한다.

예제 입력 1

1 2

예제 출력 1

3

제출

맞은 제출 1

let input = readLine()!
let arr = input.split(separator:" ")
let A = Int(arr[0])!
let B = Int(arr[1])!
print (A+B)

맞은 제출 2

let input = (readLine()!).split(separator:" ")
let A = Int(input[0])!
let B = Int(input[1])!
print (A+B)

input과 arr을 한번에 처리한 풀이를 보고 다시한번 제출!

맞은 제출 3

let input = (readLine()!).split(separator:" ")
print (Int(input[0])!+Int(input[1])!)

AB의 변수공간도 선언 할필요없이 Print에서 처리가 가능한 풀이도 있었다.
다만 사용하는 메모리와 처리 시간이 동일하니 AB를 선언하는게 좀더 가독성이 높다고 생각된다.

오답노트

틀린 제출 1

let input = readLine()!
let arr = input.Splint(Separator:" ")
let A = (arr[0])
let B = (arr[1])
print (A+B)

split를 처음 써봤는데 스펠링과 대문자를 틀렸다! 그리고 Int 변환을 안해줬었다. 덕분에 한참 컴파일 에러를 봤다 ㅎㅎ;

숏코딩

숏코딩 예제 1

print(readLine()!.split{$0==" "}.map{Int($0)!}.reduce(0,+))

처음보는 reduce를 이해하기 위해 여러 블로그를 찾아봤던 예제다.
첫번째, readLine으로 들어온것을 split로 나누어 주고
두번째, map(변형)으로 배열에 각값을 Int로 바꿔주는 작업을 한뒤
세번째, reduce(리듀서, 결합)라는 함수로 내부의 값들을 결합해준것이다. 로 이해했다.

reduce(리듀스)
배열이라면 배열의 모든 값을 전달 인자로 전달받아 클로저의 연산 결과로 합해준다.
let numbers: [Int] = [1,2,3,4,5]
var sum = numbers.reduce(0) { (result: Int, element: Int) -> Int in
print("(result) + (element)")
return result + element
}
을 var sum = numbers.reduce(0, +)로 줄여쓸수있다.
var 넣을변수이름선언 = 리듀스할변수이름.reduce(배열자리, +)
-를 쓸경우 각각의 요소들을 뺀 값이 반환이 된다.

split(separator:" ")을 split{$0==" "}으로 축약할수 있다 ㄴㅇ0ㅇㄱ!! 대박!!
다음에는 응용해보자! 아자아자!

profile
티끌 모아 태산. 내가 가는 길이 옳은 길이라 믿으며 최선을 다해 걷는다.

0개의 댓글