[코테준비]/[코테준비]Python

[프로그래머스]LvO.-DAY3🎵(나머지 구하기, 중앙값/최빈값 구하기, 홀수배열만들기

bestFinanceDataAnalyist 2023. 3. 19. 22:42

sqld끝나고 호다다닥 풀어보기..! 내일은 알고리즘 복습하면 시간이 없을 것 같다

컴퓨터 일반도 호다닥 복습하고 개념 정리도 만들어야디... 상반기 한군데만 전공 필기 뚫어도 매우 좋을 것 같다

일상 얘기는 끝이 없으니 주저리줘리 멈쳐

1. 나머지 구하기

문제 : 정수 num1, num2가 매개변수로 주어질 때, num1num2로 나눈 나머지를 return 하도록 solution 함수를 완성해주세요.

해결방법: 나머지 연산자! %

파이썬에는 다양한 연산자가 있는데 + - * / 외에 나머지를 구해주는 %가 있다! 그걸 이용해서 하면됨


 

2. 중앙값 구하기

문제 : 중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.

해결방법:

처음에는 중앙값 구하는 공식 n이 홀수있때는 (n+1)/2 해서 중앙값을 구할려고 했다

다만 자바에서 array[i]구하는것에 익숙해져서 그런지 파이썬은 잘 구현이 안되서

그냥 배열 정렬시키고 numpy 라이브러리를 불러와서 중앙값을 구해버렸다

라이브러리 불러올떄는 import 라이브러리 이름 as 사용할이름 으로 불러온다

다른 사람 풀이를 보니까

array[int(len(Array/2 - 0.5)] 아예 이렇게 중앙값 구하는 공식으로 푸는 방법도 있었다..!

위에께 안되는 이유를 깨닫고 감 ㅎㅎ

 


 

3. 최빈값 구하기

문제 : 최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.

해결방법

이 문제가 제일제일젱리제일 어려웠다....!! 이건 그냥 한번에 못품..... 이게 어떻게lv0임

처음에는 배열이나 리스트를 만들었는데 중간에 그냥 꼬여서 딕셔너리 만들고 거기서 최댓값을 찾았다.

1) 딕셔러니 만들기>>> 딕셔러니 이름 = {} / 딕셔너리 안에 숫자가 있으면 count 1. 없으면 0(최빈값 찾기위해서!!)

2) 빈도수 찾기

max_array= 0 을 기본으로 설정해두고 들어오는 값이 max보다 크면 그것을 다시 max 로 바꿔줌!!

java에서는 n을 받아서 그냥 n번만큼 돌렸는데 여기서는 count.items()이라는 함수를 씀(구글링)

3) 문제에서 최빈값이 여러개면 -1을 리턴하라고 했기 때문에 리턴도 해줘야 함

이건 리스트 만들어서 해놓음

>> 이거 다하고 풀이를 봤는데 아쥬 기막힌 해법이 있었음. enumerate라는 함수를 써서 제거를 하면서 최빈값을 구해주는 건데 다른 분들도 한 번 꼭 보시길...! 이거보다 훨씬 간다했다

 


 

4. 짝수는 싫어요

문제 : 정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.

해결방안

어제 풀었던 range(a,b,c): a부터 b-1까지 c만큼 건너뜀 을 사용하였다. 1~n+1-1까지의 수를 2만큼씩 건너서 배열에 집어넣는 방식으로 풀었따

여차여차 완성~! day25일까지해서 일단 4월안에는 호다닥 풀어보는 게 목표입니다.........! 사실 3월안에 끝날 줄 알았지만 자격증시험 + 알고리즘숙제 + 컴퓨터일반 스터디 어리몯 없지...^ 이틀에 day하나씩은 풀어봐야디....