목록알고리즘 (7)
MUKER_DEV with iOS

1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 나의 풀이 // 입력값 대문자로 변환 let input = readLine()!.uppercased() var dic = [String: Int]() var temp = [String]() for i in input { // 입력값을 딕셔너리 키값에 넣고 입력값이 중복되면 벨류가 1씩 늘어남 if dic[String(i)] == nil { dic[String(i)] = 1 } else { dic[String(i)]! += 1 } } for i in dic.keys { // 'temp'배열에 제일..

2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 나의 풀이 let input = Int(readLine()!)! // 입력값 만큼 반복해서 readLine생성 for _ in 1...input { // 반복해서 나올 입력값을 temp 배열에 따로 넣어줌 let temp = readLine()!.split(separator: " ") // temp[1] 에 있는 문자를 하나씩 꺼냄 for i in temp[1] { // 꺼낸 문자를 temp[0]에 있는 숫자만큼 출력 for _ in 1...Int(te..

3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 내가 푼 풀이 var arr: [Int] = [] var a = 10 for i in 0...9 { arr.append(Int(readLine()!)!) arr[i] = arr[i] % 42 } for i in 0...8 { for j in i+1...9 { if arr[i] == arr[j] { a = a - 1 break // 중첩되는 숫자가 나오면 더이상 반복하지 않고 break로 j를 돌리는 for문을 빠져나온다. } } } print(a) 69100kb, 8ms, 247b 개선한 풀이 - 길이 감소 var arr = [In..

2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 내가 푼 풀이 - 배열.firstIndex() 함수로 원하는 값의 순서를 앞에서부터 몇번째인지 알 수 있다. var arr: [Int] = [] for _ in 1...9 { arr.append(Int(readLine()!)!) } let max = arr.max()! print(max) print(arr.firstIndex(of: max)! + 1) 69100kb, 8ms, 141b

10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 내가 푼 풀이 - .min()과, .max()로 배열의 최솟값, 최대값을 구할 수 있다. let input = Int(readLine()!)! let arr = readLine()!.split(separator: " ").map { Int($0)! } print(arr.min()!, arr.max()!) 133696kb, 404ms, 120b
제 문제 풀이는 최선의 풀이가 아닐 수 있습니다. 문제를 푸는 방법은 다양합니다! 문제설명 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 제한 조건 str은 길이 1 이상인 문자열입니다. 입출력 예 s return "Zbcdefg" "gfedcbZ" 문제 분석 1. 문자열을 내림, 오름 차순으로 정렬할 수 있다. Solution.swift func solution(_ s:String) -> String { // sorted는 문자열, 배열을 정렬해주는 고차함수이다. // 오름차순으로 정렬하고 싶으면 $0 < $1로 뒤로 갈수록 커지게 하면 된다...
제 문제 풀이는 최선의 풀이가 아닐 수 있습니다. 문제를 푸는 방법은 다양합니다! 문제설명 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이상 8000000000 이하인 자연수입니다. 입출력 예 n return 118372 873211 문제 분석 1. sorted() 함수를 이용하여 배열 및 문자열을 정렬할 수 있습니다. 2. 정렬된 문자열을 정수로 리턴해 문제를 풉니다. Solution.swift func solution(_ n:Int64) -> Int64 { // 입력된 정수를 문자열로 변환시켜 변수에 담아줍니다. var str = St..