알고리즘/문제(35)
-
프로그래머스 알고리즘 Level 1 햄버거 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/133502#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 번째 풀이 - 문자열 접근 ( 2개의 케이스 시간 초과로 실패 ) class Solution { fun solution(ingredient: IntArray): Int { var answer: Int = 0 var copyIngredient = ingredient.joinToString("") while (true) { if (!copyIngredient.contains("1231")..
2023.01.24 -
프로그래머스 Level 1 코틀린 2022 KAKAO BLIND RECRUITMENT 신고 결과 받기
https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 첫 번째 풀이 함수형을 통한 풀이 BUT 시간 초과로 다시 생각함 2. for문을 통한 풀이 class Solution { fun solution(id_list: Array, report: Array, k: Int): IntArray { val cntHashMap = LinkedHashMap() val reportHashMap = LinkedHashMap() val answer = IntAr..
2023.01.24 -
프로그래머스 알고리즘 Level 1 코틀린 문자열 나누기
https://school.programmers.co.kr/learn/courses/30/lessons/140108 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 class Solution { fun solution(s: String): Int { var answer: Int = 0 var str = s while (str.isNotEmpty()) { var sCnt = 1 var oCnt = 0 for (i in 1 until str.length) { if (str.elementAt(0) == str.elementAt(i)) sCnt++ else ..
2023.01.23 -
프로그래머스 알고리즘 Level 1 과일 장수
https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 설명은 길지만 간단하게 말하면 사과 한 상자에 m개씩 담아서 상자의 가장 작은 사과 가치 X m개를 하면 1개 상자의 값이다. score 를 m개씩 담아서 값을 매기고 그 값을 다 더한다는 문제이다. 먼저 score를 정렬해서 총 개수가 m개로 나누었을때 나머지가 0이 되도록 자르고 나머지는 버린다. 그리고 m개로 잘라서 각각 리스트로 만든다. 묶음으로 나온 각 list 의 가장 작은 값을..
2023.01.23 -
프로그래머스 알고리즘 Level 1 코틀린 기사단원의 무기
1. 첫 번째 풀이 - 과정은 맞는데 결과는 시간초과 class Solution { fun solution(number: Int, limit: Int, power: Int): Int = (1..number).map { i -> (1..i).count { i % it == 0 } }.map { if (it > limit) power else it }.sumOf { it } } 일단 이걸로 돌려봄 BUT 과정은 맞지만 시간복잡도에서 쓰레기임. 약수를 찾으려고 1부터 찾으려는 약수까지 반복문을 돌려서 count로 찾음. 이렇게 하면 O(N^2)인데 10만이면 10만 X 10만... 시간 초과 오류와 함께 해결 하지 못함. 2. 두 번째 풀이 - sqrt를 활용한 최적화 import kotlin.math.sqr..
2023.01.22 -
프로그래머스 알고리즘 Level1 코틀린 명예의 전당
https://school.programmers.co.kr/learn/courses/30/lessons/138477 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 번째 풀이 class Solution { fun solution(k: Int, score: IntArray): List = score.indices.map { i-> score.slice(0..i).sortedDescending().filterIndexed { index , i -> index>>> slice(0.. i) 하면 현재 들어오는 값 포함 list가 나온다. 이렇게 하나씩 올 때 ..
2023.01.22