프로그래머스 45

[프로그래머스] 두 큐 합 같게 만들기 for JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 보고 약간 당황한 문제이다. 문제 자체의 이해는 쉽다. 문제를 보고 특정 알고리즘이 그닥 떠오르지 않았다. 이게 그리디하게 풀리지 않는다면.. 내가 풀 수 없는 어떤 알고리즘을 사용하는거거나 엄청난 수학 문제구나 생각함. 결론부터 말하자면 그리디가 맞았다. 두 큐가 숫자를 계속 옮겨갈건데 그리디하게 한쪽이 크면 작은 쪽으로 옮기는 방식을 선택했고 가장 고민했던 부분은 어떤 방법으로도 원소..

[프로그래머스] 로또의 최고 순위와 최저 순위 for JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/77484?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 숫자가 0인 것을 모두 맞았다고 가정했을 때 최고의 등수, 다 틀렸다고 가정했을 때 최저의 등수인 문제이다. import java.util.*; class Solution { public int[] solution(int[] lottos, int[] win_nums) { int[] answer = new int[2]; Set win_num = new HashSet(); f..

[프로그래머스] 모의고사 for Python

https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 모의고사 문제 다시풀었다. def solution(answers): answer = [] math1 = [1, 2, 3, 4, 5] math2 = [2, 1, 2, 3, 2, 4, 2, 5] math3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] m1 = 0 m2 = 0 m3 = 0 for i in range(len(answers)): if mat..

[프로그래머스] 완주하지 못한 선수 for Python

https://programmers.co.kr/learn/courses/30/lessons/42576?language=python3 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 그냥 리스트 쓰려고 했는데 효율성 틀림 def solution(participant, completion): for i in completion: participant.remove(i); return ''.join(participant) 해시 문제니까 딕셔너리를 써보려고욧 def solution(participa..

[프로그래머스] 소수 만들기 for Python

https://programmers.co.kr/learn/courses/30/lessons/12977?language=python3 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 입력 nums 중에 3개를 순서없이 뽑아내야 하므로 조합을 사용해야 한다. 파이썬 내장 함수를 사용할 수 있음 from itertools import combinations combinations(arr, 3) 이렇게 사용하면 된다. 그리고 소수인지 판별하는 방법은 import math def is_prime_n..

[프로그래머스] 신고 결과 받기 for Python

https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 진짜 대박.... 다 통과하기 개어렵다. 내가 푼 방법(틀림) def solution(id_list, report, k): report_num = [0] * len(id_list) stop_nik = [] answer = [0] * len(id_list) for i in range(len(report)): report[i] = report[i].split..

[프로그래머스] 크레인 인형뽑기 게임 for Python

https://programmers.co.kr/learn/courses/30/lessons/64061?language=python3 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 파이썬으로 구현했다. 원래 스택을 쓰려고 했는데... 음~ 그냥 리스트 썼다. def solution(board, moves): answer = 0 my_doll = [] for out in moves: for i in range(len(board)): if board[i][out - 1] != 0: if len(my_doll) == 0: # 인형 쌓는곳이 ..

[프로그래머스] 키패드 누르기 for Python

https://programmers.co.kr/learn/courses/30/lessons/67256?language=python3 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 파이썬으로 다시 풀었다. 자바로 풀었을 때 누구꺼 참고했던 것 같은데... https://ticssfm.tistory.com/42?category=1014765 midR: answer += 'R' R = num[i] els..

[프로그래머스] 신규 아이디 추천 for Python

https://programmers.co.kr/learn/courses/30/lessons/72410?language=python3 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 파이썬으로 다시 풀었다. 이 문제...음 각 언어 이해하기에 아주 좋은 문제인듯 def solution(new_id): # 1단계 new_id = new_id.lower() # 2단계 for i in new_id: if i.isalnum() or i == '-' or i == '_' or i == '.': continue e..

[프로그래머스] 로또의 최고 순위와 최저 순위 for python

https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 파이썬으로 다시 풀었다. def solution(lottos, win_nums): rank = [6,6,5,4,3,2,1] total_low = 0 for i in win_nums: if i in lottos: total_low += 1 total_high = total_low + lottos.count(0) ret..