분류 전체보기
-
[Python] 로또의 최고 순위와 최저 순위Algorithm/프로그래머스 2021. 5. 5. 23:54
1. 문제 📚 2. 입출력 예 📋 3. 알고리즘 ✅ wins_num에는 같은 숫자가 담겨있지 않으므로, 0이 모두 맞으면, 최고 순위가 된다 최저순위는 0이 모두 안맞고, win_nums과 같은 숫자의 갯수가 최저 개수가 된다. 2개가 일치하는 것부터 순위를 주고, 나머지는 6위이므로 index를 맞은 갯수로 생각하고 리스트를 만들어 준다 따라서 최고 순위 = 일치하는 번호 갯수 + 0의 갯수 최저 순위 = 일치하는 번호 갯수 4. 소스코드 💻 def solution(lottos, win_nums): answer = 0 rank = [6, 6, 5, 4, 3, 2, 1] cnt_0 = lottos.count(0) for num in win_nums: if num in lottos: answer += 1 ..
-
[Python] 폰켓몬Algorithm/프로그래머스 2021. 5. 3. 23:21
1. 문제 📚 2. 입출력 예 📋 3. 알고리즘 ✅ 가장 많은 종류의 폰켓몬을 갖고 싶어하기 때문에 박사님이 가지고 있는 폰켓몬 /2 만큼 중복제거를 해준다 4. 소스코드 💻 def solution(nums): count=len(nums)//2 poketmon = [] for i in nums: if poketmon.count(i) == 0: poketmon.append(i) return len(poketmon[:count]) 5. 다른사람의 풀이 💻 def solution(nums): return min(len(nums)/2, len(set(nums))) 앞으로는 if 절로 중복을 제거하는 방법보단 set을 이용하자! 😅
-
[Python] 2016년Algorithm/프로그래머스 2021. 5. 1. 23:33
1. 문제 📚 2. 입출력 예 📋 3. 알고리즘 ✅ 각 달의 말일을 담은 리스트를 만든다 1월 1일이 FRI이므로, FRI부터 시작하는 요일 리스트를 만든다. a-1달까지의 말일을 더한 후, b-1을 더하고 %7번째의 요일을 리턴한다. -> 1월1일이 FRI이므로 1월 1일이 0번째를 만들기 위해 각각 -1을 한다. 4. 소스코드 💻 def solution(a,b): months = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] days = ['FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED', 'THU'] return days[(sum(months[:a-1])+b-1)%7]
-
[Python] 체육복Algorithm/프로그래머스 2021. 5. 1. 00:17
1. 문제 📚 2. 입출력 예 📋 3. 알고리즘 ✅ 제한사항에 여벌 체육복을 가져온 사람도 도난 당할 수 있다 라고 적혀있다 이점을 고려하여, 중복되는 것들은 빼준다. 우선순위를 왼쪽으로 둘지, 오른쪽으로 둘지 선택한다 n = 5, lost = [2, 4], reserve[3, 5] 가정 오른쪽으로 우선순위를 두게 되면, 최대값이 나올 수 없다. 따라서 왼쪽부터 우선순위를 둬야한다. 여분학생 -1 값과 도난 학생 이 같으면 도난학생을 없앤다. 총 학생의 수에서 도난 학생의 수를 빼준다. 4. 소스코드 💻 def solution(n, lost, reserve): set_reserve = set(reserve) - set(lost) set_lost = set(lost) - set(reserve) for i ..
-
[Python] 모의고사Algorithm/프로그래머스 2021. 4. 29. 17:23
1. 문제 📚 2. 입출력 예 📋 3. 알고리즘 ✅ 각자 학생이 맞춘 정답의 개수를 list를 만든다 학생마다 반복되는 답의 길이가 다르므로, 정답의 길이를 나눈 나머지로 비교 정답이면 각자 개수에 +1을 해준다 가장 많이 맞춘 학생을 리턴하면 되므로, 가장 많이 맞춘 개수와 비교하여 같으면 answer에 넣어준다. 4. 소스코드 💻 def solution(answers): st1 = [1, 2, 3, 4, 5] st2 = [2, 1, 2, 3, 2, 4, 2, 5] st3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] answer = [] cnt = [0, 0, 0] for i in range(len(answers)): if answers[i] == st1[i%len(st1)]: cnt[0..
-
[Python] 완주하지 못한 선수Algorithm/프로그래머스 2021. 4. 27. 22:31
http:// programmers.co.kr/learn/courses/30/lessons/42576?language=python3 1. 문제 📚 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 2. 입출력 예 📋 3. 알고리즘 ✅ 완주하지 못한 선수는 무조건 1명이기 때문에 Counter 함수를 이용한다 Counter함수를 이용하여 두 객체를 빼주게 되면, 결국 완주하지 못한 선수 한명만 남게된다 Counter는 key..
-
[Python] 크레인 인형뽑기Algorithm/프로그래머스 2021. 4. 26. 23:59
1. 문제 📚 게임 화면의 격자의 상태가 담긴 2차원 배열 board와 인형을 집기 위해 크레인을 작동시킨 위치가 담긴 배열 moves가 매개변수로 주어질 때, 크레인을 모두 작동시킨 후 터트려져 사라진 인형의 개수를 return 하도록 solution 함수를 완성해주세요. 2. 입출력 예 📋 3. 알고리즘 ✅ 하나 씩 비교하기 위해 moves와 board를 각각 for문으로 꺼내준다 0이 아닐 시 (인형이 있는 것) basket 배열에 넣어준다 배열이 마지막 숫자와 같을 경우 answer 에 2를 더해준다 → 총 2개가 사라지는 것이기 때문에 사라진 2개를 basket에서 없애준다 4. 소스코드 💻 def solution(board, moves): answer = 0 bucket = [] for mov..
-
04. 스택의 응용 - 괄호 검사 문제 알고리즘Computer Science/Data Structure 2021. 4. 10. 11:29
4.4 스택의 응용 괄호 검사 문제 프로그램에서 사용되는 괄호에는 [, ], {, }, (, ) 등이 있다. 스택을 이용하여 올바르게 사용되었는지 스택을 활용하여 구현해보자 조건 왼쪽 괄호의 개수와 오른쪽 괄호의 개수가 동일해야한다. 같은 종류의 괄호에서 왼쪽 괄호는 항상 먼저 나와야한다. 서로 다른 종류의 왼쪽 괄호와 오른쪽 괄호 쌍은 교차하면 안된다. 알고리즘 문자열을 차례대로 조사한다 왼쪽 괄호를 만나면 스택에 넣고, 오른쪽 괄호를 만나면 스택에서 가장 최근의 왼쪽 괄호를 꺼내어 맞는 지 확인한다. 이 떄, 스택이 비어있으면 조건1, 조건2 위배 괄호의 짝이맞지않으면 조건3 위배 마지막 괄호까지 조사를 마친 후 스택에 괄호가 남아있다면 조건 1에 위배 구현 #include #include #defi..