본문 바로가기

전체 글

(51)
프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ 포켓몬 ] [문제 설명] - N 마리 포켓몬중 반을 가져가도 됨. - 번호로 구분하는데 같은 종류의 포켓몬은 같은 번호를 가지고 있다. - 최대한 다양한 종류의 포켓몬을 가지는 조합을 짜고 그 종류 갯수를 리턴. [입출력 예] [내 풀이] -이거 앞에 조합 짰던 문제가 있었는데 그거랑 그냥 비슷 한듯! 오히려 더 쉬운가? 그때 배웠던 itertools를 이용해 봅시다. 멋들어지게 풀고 "너무 쉬우니 설명은 생략 하겠습니다." 라고 하려했는데 ㅋㅋ아 시간초과가 너무 많다. 이렇게 하면 안되나보다 어케 하는거지? 아 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 그냥 낚시 문제였음.. 조합이고뭐고 다 필요없는 ㅠㅠㅠ 문제풀이 했던 순서 1. 아! 애초에 중복을 제거 해놓고 풀면 되는구나. 2. 첫 배열/2 보다 중복제거한게..
프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ 키패드 누르기 ] [문제 설명] - 상하좌우 4가지 방향으로만 이동 가능. 이동 가능 거리는 1 - 1 4 7 을 입력할때는 왼손 엄지, 3 6 9 는 오른 엄지 - 2580 입력할때는 키패드에서 가까운 손. 거리 같으면 오른손잡이는 오른손 왼손잡이는 왼손 - 순서대로 누른 번호가 담긴 배열 numbers[], 왼손잡이 인지 오른손 잡이인지 나타내는 문자열 hand[] - 각 번호를 누른 엄지 손가락이 왼손인지 오른손인 지를 나타내는 문자열을 리턴하는 함수 작성. [제한사항] - numbers 배열크기는 1이상 1,000 이하 - numbers 배열 원소 값은 0 이상 9 이하 - hand[]는 "left" 또는 "right" 이다. - 왼손 엄지는 L, 오른손 엄지는 R 리턴. [입출력 예] [내 풀이] - 편의를 위해..
프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ 신규 아이디 추천 ] [문제 설명] - 카카오에 새로 가입하는 유저들이 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발. - 아이디 길이는 3 이상 15이하임. - 알파벳(소문자만), 숫자, '-' , '_' , '.' 만 사용할 수 있음. (이때 마침표는 처음과 끝에 사용 불가하고 연속사용 불가.) - 총 7단계로 순차적인 처리과정이 있음. 1) new_id의 모든 대문자를 소문자로 치환. 2) 사용할수없는 문자들 제거 3) 마침표 2이상이면 하나로 치환 4) 마침표가 처음이나 끝이면 제거 5) 아이디가 비어있으면 "a" 넣음. 6) 15자 초과면 뒤에 제거함. 마침표만 남으면 마침표도 제거함 7) 2이하의 길이면 마지막글자를 반복해서 3이 되게 만..
프로그래머스 코딩테스트 연습 - 모든문제 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을..