본문 바로가기

프로그래머스 코딩테스트 연습 Lv1

(21)
프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ 체육복 ] [문제 설명] - 전체 학생 수 n - 체육복을 도난당한 학생 번호가 담긴 배열 lost[] - 여벌의 체육복이 있는 학생들의 번호가 담긴 배열 reserve[] - 체육복을 바로 앞 혹은 바로 뒤 번호로만 옮기는게 가능 할 때 가장 많은 학생이 체육복을 나눔받을 수 있는 경우의 최대값을 return! [제한 사항] - 전체 학생 수는 2이상 30이하 - 도난 당한 학생 수는 1 이상 n 이하 중복 당연히 없음. - 여벌 체육복 있는 학생 수는 1 이상 n 이하 중복 없음. - 여벌 있는 애가 도난 당했을 수 있음. 이때 하나만 도난 당했다 가정 하고 체육복도 하나 여벌이기 때문에 빌려줄 수 없음. [입출력 예] [내 풀이] - 일단 대충 생각을 해봤을때 reserve가 중요 하겠네. reserve끼리도..
프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ 완주하지 못한 선수 ] [문제] - 단 한명의 선수를 제외하고 모두 완주 했음. - 참가자 배열 participant 완주자 배열 completion이 있음. - 완주하지 못한 선수의 이름을 return [제한사항] - 1명이상 100,000명 이하 - completion길이는 participant보다 1 작음 - 이름은 1~20개의 알파벳 소문자. - 동명이인 있음. [입출력 예] -participant = ["leo", "kiki", "eden"] -completion = ["eden", "kiki"] -return = "leo" [내풀이] -배열 만들어서 소트하고 비교해서 없는거 리턴. 다른거 있나 공부 해보자. 이게 사실 해시 파트의 문젠데 해쉬에 대해 우선 학습하는게 중요하다고 생각했다. 내가 아는 해쉬 함수는 매핑할..
프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ 모의고사 ] [문제] - 수포자 3명의 모의고사 찍는 규칙이 있는데 정답 배열 answer과 가장 많이 일치하는 사람을 찾는 문제. - 1번 수포자는 12345 12345 12345 이렇게 찍음 - 2번 수포자는 21 23 24 25 21 23 24 25 이렇게 찍음 - 3번 수포자는 3311224455 3311224455 이렇게 찍음 [제한조건] - 최대 10,000 문제 - 가장 높은 점수를 받은 사람이 여러명이면 오름차순 정렬 하셈. [입출역 예] answer = [1,2,3,4,5] return[1] answer = [1,3,2,4,2] return[1,2,3] [내 풀이] - 그냥 배열문제 아닌가..? answer 배열을 랜덤으로 만들어 놓고 각각 비교 해서 정답이면 cnt 변수를 하나씩 올리는 방식으로 반..
프로그래머스 코딩테스트 연습- 모든문제 Lv1 [소수 만들기] [문제 설명] 배열 nums이 매개변수로 주어지고 nums에 있는 숫자들 중 서로 다른 3개의 수를 골라 더했을 때 소수가 되는 경우의 개수를 return. [제한 사항] - nums에 들어있는 숫자의 개수는 3이상 50이하 - 각 원소는 1이상 1000이하의 자연수. 중복숫자 없음. [내 풀이] - 뭐딱히 새로운게 필요하진 않을것 같음. - 배열에 있는 원소의 개수를 하나씩 추출한 다음 다 더하는 방법이 제일 빨리 떠오름 잘 안된다. i j t 변수를 만들어 t 가 점점 증가하고 len(배열) 보다 1작으면 j를 증가시키고 t를 j 다음번으로 바꾸는 식으로 짯는데 잘 안짜짐.. 그래도 일단 해보기로 했습니다. 이것도 못하고 쩔쩔매는게 너무 짜증나서ㅠㅠㅠ 1. 세 가지 수를 뽑아 새로운 배열 만들기 첫번..
프로그래머스 코딩테스트 연습- 모든문제 Lv1 [내적] [문제 설명] 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해 주세요. a와 b의 내적은 a[0]*b[0] + a[1]*b[1]+ ...... + a[n-1]b[n-1] 입니다. [제한사항] - a, b 의 길이는 1 이상 1000 이하. - a, b 의 모든 수는 -1000 이상 1000이하. [내 풀이] 1. 내적이 뭔지 몰라서 찾아봄. 이런저런 뜻이있고 벡터에서 곱하기의 의미로 썻던게 기억났음. 2. 그냥 두 배열을 0부터 최대치까지 곱하고 더하는 함수를 짜면 되는듯. *temp는 필요없다. 나는 많이 틀릴테니까 주피터에서 실행해 보고 출력이 되면 프로그래머스에서 실행한다. 다른사람 풀이 보니까 미쳤다. zip을..