SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
N 개의 숫자중에 중간값을 출력하는 문제이다. ( 중간값 : 크기 순으로 배열했을 때 중앙에 위치하는 수)
파이썬에서 나누기 연산은 아래와 같다.
/ : 기본 나눗셈 (float형)
5/3=1.666666667
// : 몫
5//3=1
% : 나머지
5%3=2
divmod : 몫, 나머지 (결과값을 이용할 때는 2개의 변수가 필요하다.)
a,b=divmod(5,3)
a가 몫인 1, b가 나머지인 2가 된다.
1. 파이썬
n = int(input())
data = list(map(int, input().split()))
data.sort()
m = n // 2
print(data[m])
입력될 숫자 개수를 int로 변환해서 n으로 저장한다.
입력된 모든 숫자들을 split()으로 쪼개고 int로 변환한 뒤에 list로 각각 저장한다.
sort()로 오름차순 정렬한다.
내림차순 정렬 : sort(reverse=True)
입력받은 숫자는 홀수라고 문제에 지정되어 있다.
0부터 list로 저장되는 것을 생각했을 때 개수에 나누기 2를 하면 중간의 데이터를 찾을 수 있다.
(ex. 입력된 데이터가 5개라면 data[2]가 중간값이다.)
2. 자바
import java.util.Arrays;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] num=new int[n];
for(int i=0;i<n;i+=1) {
num[i]=sc.nextInt(); }
Arrays.sort(num);
System.out.println(num[n/2]);
} }
입력받은 숫자들을 배열에 넣어주고, Arrays.sort를 이용해서 오름차순 정렬한다.
내림차순 정렬 : Arrays.sort(배열이름, Collections.reverseOrder());
n/2번째 값을 출력한다.
'Algorithm > SWEA' 카테고리의 다른 글
4831. [파이썬 S/W 문제해결 기본] 1일차 - 전기버스 (0) | 2022.10.05 |
---|---|
파이썬, 자바 : SWEA 1946. 간단한 압축 풀기 (0) | 2022.07.05 |
파이썬, 자바 : SWEA 1989. 초심자의 회문 검사 (0) | 2022.07.05 |
파이썬, 자바 : SWEA 2058. 자릿수 더하기 (list, for) (0) | 2022.07.05 |
파이썬, 자바 : SWEA 1936. 1대1 가위바위보 (0) | 2022.07.05 |