Swift 백준 1181 단어 정렬
·
Algorithm/Baekjoon
시간초과 코드데이터를 입력받을 때마다 해당 값이 존재하는지 확인 후 중복을 없애는 일은 시간초과를 일으킵니다.var arr:[String] = []let num = Int(readLine()!)!for _ in 1...num { let tmp = readLine()! if !arr.contains(where: { $0 == tmp}) { arr.append(tmp) }}arr = arr.sorted(by: { s1, s2 in if s1.count == s2.count { return s1  시간초과 해결 코드그렇기 때문에 시간초과 문제를 해결하기 위해서는 Set 자료형을 사용하여 문제를 해결할 수 있겠습니다.이후 길이가 같으면 해당 값을 가지고 비교하여 정렬하고길이가 같지 ..
Swift 백준 1259 팰린드롬수 (reversed)
·
Algorithm/Baekjoon
어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 합니다 앞으로 읽어도 똑같고 뒤집어 읽어도 똑같다면 뒤집은 결과와 입력받은 값과 비교했을 때 같으면 팰린드롬수라고 할 수 있습니다.문자열을 뒤집기 위해서 reversed 메서드를 사용하여 해결할 수 있습니다.var line = readLine()!while(line != "0") { if line == String(line.reversed()) { print("yes") } else { print("no") } line = readLine()!}
Swift 백준 10250 ACM 호텔
·
Algorithm/Baekjoon
let num = Int(readLine()!)!for _ in 1...num { let tmp = readLine()!.split(separator: " ").map{ Int($0)! } let H = tmp[0] let N = tmp[2] let h = (N - 1) % H + 1 // 99 % 10 + 1 // 9 % 7 == 2 let w = (N - 1) / H + 1 let wString = w  H는 층 수, W는 방 수, N은 사람 수 를 의미합니다.배정되어야 하는 층 수는 나머지를 통해서 구할 수 있습니다.나머지로 구현했을 때 실수하는 부분예를 들어 입력값이 6 12 10이라면 N % H 를 통해서 4 층에 배정해야 한다는 것을 구할 수 있습니다.하지만 만..
swift 백준 11654, 2744, 2754, 27866, 9086 (문자열)
·
Algorithm/Baekjoon
11654번 아스키 코드아스키 코드를 출력하기 위해서는 utf8CString을 사용합니다.utf8CString란 문자열의 연속적으로 저장된 UTF-8를 표현합니다. 즉 아스키 코드를 출력합니다first를 사용한 이유는 입력 값이 한글자라도 마지막에는 0이 출력되기 때문입니다.let line = readLine()!print(line.utf8CString.first!) 2744번 대소문자 바꾸기대소문자를 바꾸기 위해서는 위에서 사용했던 아스키 코드를 활용하여 풀 수 있겠습니다.대문자 (65~90) 소문자 (97~122)let line = readLine()!for i in line { (i.utf8.first! >= 65 && i.utf8.first!  2754번 학점계산간단한 함수를 만들어서 풀 수..
swift 백준 10871, 10807, 5597, 2738 (배열)
·
Algorithm/Baekjoon
10871번 X보다 작은 수배열을 만드는 방법은 여러가지 입니다, 아래 코드에서는 map 메서드를 사용하여 배열을 만들었습니다.result에 삼항연산자를 사용하여 line[1] 보다 작은 값을 추려내 forEach로 출력하였습니다.let line = readLine()!.split(separator: " ").map({Int($0)})let arr = readLine()?.split(separator: " ").map({Int($0)})let result = arr?.filter({ return $0!  10807번 개수 세기a에 주어진 정수를 담습니다.b에 a개만큼 입력받도록 문제가 의도하였지만 readLine과 split을 사용하여 a를 사용하지 않고도 해결할 수 있습니다.이후 c에 정수를 입력받고 ..
swift 백준 2741, 10872, 10950, 2420, 2753 (반복)
·
Algorithm/Baekjoon
2741번 N 찍기for 문을 사용해 1부터 a까지 데이터를 클로저에 사용될 수 있도록 i에 넣어 사용하여 문제를 해결할 수 있습니다.let line = readLine()!let a = Int(line)!for i in 1...a { print(i)} 10872번 팩토리얼N 팩토리얼은 1부터 N까지의 곱의 합입니다.입력값이 0이면 1을 출력하고 아니면 값을 계속 곱하면서 계산한 값을 출력합니다.let line = readLine()!let a = Int(line)!var result = 1if a > 0 { for i in 1...a { result *= i }}print(result) 10950번 A+B - 3반복할 값(a)을 입력받아 a 번만큼 반복합니다.반복하는 동안 ..
ytw_developer
'Algorithm/Baekjoon' 카테고리의 글 목록 (7 Page)