프로그래머스
[프로그래머스] 최대공약수와 최소공배수
문제 문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 제한 사항 두 수는 1이상 1000000이하의 자연수입니다. 입력 & 출력 입출력 예 nmreturn 3 12 [3, 12] 2 5 [1, 10] 풀이 과정 1. 최대 공약수와 최소공배수를 구하는 함수를 만들어줍니다. 여기서 최대 공약수를 구하는 방식은 for문을 이용하지만 큰 숫자부터 밑으로 내려오면서 정말 탐색하다가 나누어 떨어지는 숫자에서 리턴하는 방식으로 구성합니다. 2. 최소..
[프로그래머스] 소수 찾기
문제 문제 설명 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 입력 & 출력 입출력 예 nresult 10 4 5 3 풀이 과정 1. 소수를 판별하는 함수를 만들어서 해결하려고 하였습니다. 소수 판별하는 함수는 총 3가지 정도로 많이 구성하지만 여기서는 에라토스테네스의 체의 개념을 사용한 어떤 숫자의 제곱근까지의 숫자까지만 판별하는 방식으로 시간 복잡도를 줄였습니다. 2. 1번 방식으로 소수를 구하는 함수를 구성한다면 그 결과값은 소수인지 아닌지 Boolean형태로 반환되게 됩니다. 이것을 조건문에 사용해서 소수일 경우에는 answer 변수를 1씩 증가시키고 이를 반..
[프로그래머스] 문자열 내림차순으로 배치하기
문제 문제 설명 문자열 s에 나타나는 문자를 큰 것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 입력 & 출력 입출력 예 sreturn "Zbcdefg" "gfedcbZ" 풀이 과정 1. sorted함수와 join 함수 사용방법만 알면 해결되는 문제입니다. 문자열을 배열로 변환하여서 sorted함수를 이용하여 오름차순으로 변경하고 이것을 join을 이용하여 문자열로 변환하여 리턴합니다. 코드 def solution(s): answer = "".join(sorted(list(s), reverse = True)) return answer
[프로그래머스] 문자열 내 p와 y의 개수
문제 문제 설명 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return 하고 "Pyy"라면 false를 return 합니다. 제한사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. 입력 & 출력 입출력 예 sanswer "pPoooyY" true "Pyy" false 풀이 과정 1. 대소문자 구분 없이 체크하면 되므로 대소문자 두 개로 다 count를 하..
![[프로그래머스] [1차] 다트 게임](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczgR6u%2FbtrJWWFZPYO%2F2w4l7ivk7kDkbcLbtbTsA1%2Fimg.png)
[프로그래머스] [1차] 다트 게임
문제 문제 설명 다트 게임 카카오톡에 뜬 네 번째 별! 심심할 땐? 카카오톡 게임별~ 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 다트 게임은 총 3번의 기회로 구성된다. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수1 , 점수2 , 점수3 )으로 계산된다. 옵션으로 스타상(*..
![[프로그래머스] 실패율](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFBuj0%2FbtrJRLZWiBJ%2Ft1krLl0NmOcOFi22GUnExk%2Fimg.png)
[프로그래머스] 실패율
문제 문제 설명 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프렌즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stag..