본문 바로가기

알고리즘/프로그래머스

(39)
위클리 챌린지 - 1주차_부족한 금액 계산하기 https://programmers.co.kr/learn/courses/30/lessons/82612?language=swift 코딩테스트 연습 - 1주차_부족한 금액 계산하기 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr func solution(_ price:Int, _ money:Int, _ count:Int) -> Int64{ var answer: Int = 0 var num = count while num > 0 { //타는 횟수만큼 가격을 증가 answer += price * num num -= 1 } // 결과..
위클리 챌린지 - 4주차_직업군 추천하기 https://programmers.co.kr/learn/courses/30/lessons/84325?language=swift 코딩테스트 연습 - 4주차_직업군 추천하기 개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부 programmers.co.kr func solution(_ table:[String], _ languages:[String], _ preference:[Int]) -> String { let new_table = table.map { $0.components(separatedBy: " ") } //어떤 언어가 몇점인지 담을 딕셔너리 var value..
위클리 챌린지 - 7주차_입실 퇴실 https://programmers.co.kr/learn/courses/30/lessons/86048?language=swift 코딩테스트 연습 - 7주차_입실 퇴실 사회적 거리두기를 위해 회의실에 출입할 때 명부에 이름을 적어야 합니다. 입실과 퇴실이 동시에 이뤄지는 경우는 없으며, 입실 시각과 퇴실 시각은 따로 기록하지 않습니다. 오늘 회의실에는 programmers.co.kr func solution(_ enter:[Int], _ leave:[Int]) -> [Int] { //사람들의 입퇴실을 담을 방 var room = [Int]() //입실, 퇴실 입력받은 변수 var leave = leave var enter = enter //입실예정인 사람, 퇴실 예정인 사람 var enter_member ..
위클리 챌린지 - 6주차_복서 정렬하기 https://programmers.co.kr/learn/courses/30/lessons/85002?language=swift 코딩테스트 연습 - 6주차_복서 정렬하기 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr func solution(_ weights:[Int], _ head2head:[String]) -> [Int] { var results = [[Double]]() for i in 0 ..< weights.count { let result = head2head[i].map { $0 } // ..
프로그래머스 - 순위검색 programmers.co.kr/learn/courses/30/lessons/72412 "java backend junior pizza 300", "cpp frontend junior chicken 150" dfs함수에 [java, -], [backend, -], [junior, -], [pizza, -] 두번째 지원자도 마찬가지로 지원항목 + '-' 경우까지 추가해서 모든 경우의 수를 만들어준다. 그리고 언어, 직군, 경력, 소울푸드까지 문자열 키가 만들어진다면 해당 지원자의 점수를 파악해서 해당 키값에 추가해준다. 위 2가지 지원자의 모든 경우의 수를 모두 계산하면 ["cppfrontendjunior-": [150], "-frontend-chicken": [150], "javabackend-pizza..
프로그래머스 - 메뉴리뉴얼 programmers.co.kr/learn/courses/30/lessons/72411?language=swift 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 아직까지 알고리즘 푸는 기술이 너무너무 부족하단 걸 문제를 풀때마다 느낀다. 한 문제에 몇시간씩 걸리니 ㅠㅠ 근데 이제 조금씩 어떤문제를 보면 이렇게 풀어보면 되겠다는 게 보이니까 조금 더 노력할 마음도 생긴다 문제를 보고 dfs로 모든 경우를 탐색해서 풀어봐야 겠다고 생각하고 일단 계속 반복해서 모든 경우의 수를 구했다. 그리고 그 경우의 수를 조건..
프로그래머스 - 다트게임 programmers.co.kr/learn/courses/30/lessons/17682?language=swift 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 다트게임 점수구하기! 기본적으로 점수는 3개로 구성 -> 숫자는 세개 3가지 영역 S, D, T -> 각 1제곱, 2제곱, 3제곱 보너스 상 *, # -> *는 이전 점수, 지금 점수 * 2, #는 지금 점수 * -1 일단 배열에 각 점수별로 계산을 해두고 마지막에 reduce로 합치기로 생각하고 반복문을 하나 돌려서 점수를 하나씩 배열에 담고 문자열을 만나면 담긴 점수를 가지고 계산 if 문에서 else 로 바로바로 점수를 배열에 담았더니 10과 같은 숫자는 ["1", "0"] 이렇게 담기길래 number라는 변수를 하..
프로그래머스 - 실패율 programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 먼저 stages를 반복문을 돌려서 해당 스테이지에 도달한 사람이 몇번인지 계산을 해준다 만약 끝까지 모두 깬 사람이 있다면 그 스테이지는 추가하지 않고 처음부터 마지막 스테이지까지 도달한 플레이어 수를 1씩 늘려준다 예를들어 [2, 1, 2, 6, 2, 4, 3, 3] 문제의 배열에서 3번째 2 값을 기준으로 보면 만약 반복문을 통해 2를 만나면 이 유저는 2번 스테이지에 ..