[프로그래머스] 최빈값 구하기

2023. 3. 8. 01:59·알고리즘/프로그래머스
728x90

코딩문제, 풀이

첫 풀이

이차원 배열로 풀려고 했다, 원소들의 값을 하나씩 비교해서 이차원 배열안에 넣어 출력을 해주려고 했다.

import Foundation

func solution(_ array: [Int]) -> Int {

    var myArray = [[Int]]()
    var Array = [Int]()
    var count = 0
    var result = 0
    var i = 0
    var j = 0
    var k = 0

    while i < array.count  {
        while j < array.count {
            if array[i] == array[j] {
                count += 1
            }
            print("[ i =" ,array[i],", j =",array[j],"]", "count = ", count);
            j += 1
        }
        myArray.append([array[i],count])
        i += 1
        j = 0
        print("myArray = ", myArray)
        count = 0
    }
    while k < myArray.count - 1 {
        if myArray[k][1] <= myArray[k+1][1] {
            result = myArray[k+1][1]
        } else {
            result = myArray[k][1]
        }
        k += 1
    }
    return result
}

두번째 풀이

문제를 이용해서 원소가 1000까지이니 새로운 1000개 배열을 만들어서 숫자에 따라 배열 자리수에 +1 을 해주었다.

그렇게 되면 새로운 배열에 3이 4개가 있다면 새로운 배열 3번째 위치에 4가 있는 방식이다.

그것을 비교하여 제일 높은 숫자가 있는 배열 원소 자리 수를 불러와 출력 

func solution(_ array:[Int]) -> Int {
    
    var maximum = 0
    var result = 0
    var myArray = [Int](repeating: 0, count: 1000) // 원소를 1000개를 가진 배열 생성
    
    for i in array {
        myArray[i] += 1 // 입력받은 수를 myArray 배열의 위치자리로 1씩 더해줌
    }
    // 0...array는 배열의 인덱스 범위를 0부터 배열의 마지막 인덱스까지 모두 포함
    // 0..<array는 배열의 인덱스 범위를 0부터 배열의 마지막 인덱스 바로 이전까지만 포함
    for i in 0..<myArray.count{
        if maximum < myArray[i] { // 비교하는 것을 줄이기 위해, maximum을 하나씩 비교
            maximum = myArray[i] // 비교하였을때 maimum보다 크면 myArra안에 있는 수를 maimum에 대입
            result = i // myArray 배열의 위치자리를 찾아서 넣어줌
        } else if maximum == myArray[i]{
            result = -1 // myArray의 원소가 같다면 max<myArray가 실행되지 않음, 같을때 -1 출력
        }
    }
    
    return result
}
728x90

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[프로그래머스] 문자열 반복 출력  (1) 2023.03.28
[프로그래머스] 옷가게 할인 받기  (0) 2023.03.17
[프로그래머스] 배열 중앙값 구하기  (0) 2023.03.06
[프로그래머스] 분수의 덧셈 구하기  (1) 2023.03.05
[파이썬 알고리즘 인터뷰] 배열 - 세수의 합  (0) 2023.01.15
'알고리즘/프로그래머스' 카테고리의 다른 글
  • [프로그래머스] 문자열 반복 출력
  • [프로그래머스] 옷가게 할인 받기
  • [프로그래머스] 배열 중앙값 구하기
  • [프로그래머스] 분수의 덧셈 구하기
bulmang
bulmang
모바일 개발자 도전
  • bulmang
    bulmang
    bulmang
  • 전체
    오늘
    어제
    • 분류 전체보기 (208)
      • 알고리즘 (68)
        • List (3)
        • Two Pointer (6)
        • Binary Search (4)
        • Prefix Sum (3)
        • Sort (4)
        • Brute Force (5)
        • Array (2)
        • String (4)
        • 프로그래머스 (12)
        • 백준 (9)
        • Queue (2)
        • Stack (2)
        • Recursion (12)
      • Computer Science (16)
        • Computer Architecture (6)
        • Operating System (5)
        • Network (2)
        • 기타 (2)
        • System Programming (1)
      • Swift (70)
        • 개발 (24)
        • 정리 (25)
        • 문법 (20)
      • Flutter (24)
      • 기타 (12)
        • 후기 (12)
      • Git (6)
      • Ios 오픈소스 (5)
      • UI 디자인 (5)
      • AppleScript (2)
  • 링크

    • Notion
    • Github
  • 태그

    재귀
    알고리즘
    til
    Swift
    Apple Developer Academy
    FLUTTER
    IOS
    문법
    개발
    SwiftUI
    Java
    피플
    코딩테스트
    자료구조
    today i learned
    백준
    riverpod
    Xcode
    컴퓨터구조
    협업
  • 최근 댓글

  • 최근 글

  • 인기 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.2
bulmang
[프로그래머스] 최빈값 구하기
상단으로

티스토리툴바