Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 자바의 정석
- aws 자격증
- 인터페이스
- 데이터 송수신
- 유선LAN
- 계층화
- 테슬라폰
- 남궁성
- TCP/IP
- 파이썬 1712
- AWS CLF
- 상속
- 인프콘
- 파이썬
- 프로토콜
- 물리구성도
- l3 스위치
- network
- modifiers
- java
- 10866
- 백준 1712
- 논리구성도
- 다형성
- 개발바닥
- 1764
- 백준 2775
- 역캡슐화
- 네트워크
- 자바
Archives
- Today
- Total
병훈's Blog
SWEA - 2063. 중간값 찾기 (Python, Java, C++) 본문
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5QPsXKA2UDFAUq
[입력]
입력은 첫 줄에 N 이 주어진다.
둘째 줄에 N 개의 점수가 주어진다.
[출력]
N 개의 점수들 중, 중간값에 해당하는 점수를 정답으로 출력한다.
<Python>
N = int(input())
a = list(map(int, input().split()))
a.sort()
print(a[N/2])
하지만 코드길이는 Python이 갓.
파이썬에서는 배열을 입력받고 저장하는 것도 간단하다.
- a = list(map(int, input().split())) 를 사용하면 공백을 기준으로 입력되는 정수들을 바로 list로 저장할 수 있다.
- a.sort() 를 사용하면 바로 오름차순으로 정렬된다.
- list에 저장된 값을 가져오려면 a[index] 식으로 적으면 된다. [ ] 안에는 수식이 들어가도 된다.
<JAVA>
import java.util.*;
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int index = N/2;
//sc.nextLine();
ArrayList<Integer> a = new ArrayList();
for (int i = N; N>0; N--) {
int tmp = sc.nextInt();
a.add(tmp);
}
Collections.sort(a);
// N/2 로 하면 안나오고, index에 N/2를 저장하고 출력해야만 제대로 출력된다.
// int 데이터 타입으로 확실하게 정해줘야 하나보다.
System.out.println(a.get(index));
}
}
- 배열공간을 확보하기 위해 ArrayList를 사용했고, 지네릭스<>로 자료형을 정수형으로 제한하여 생성했다.
- JAVA에서는 배열에 값을 넣기 위해 반복문(for)을 사용하는 것이 일반적이다. 파이썬처럼 한 번에 입력할 수 없다.
- 배열에 값을 추가할 때는 add() 메서드를 사용한다.
- 배열을 정렬할 때는 java.util 패키지의 Collections 클래스를 사용하여 sort()로 오름차순으로 정렬한다.
- 배열의 값을 가져올 때는 단순이 인덱스를 적는 것이 아니라 get()을 사용하여 ()안에 index를 적어 값을 가져온다.
<C++>
#include<iostream>
#include<algorithm>
using namespace std;
int main(int argc, char** argv)
{
int N;
cin >> N;
int score[N];
for(int i=0; i < N; i++){
cin >> score[i]; // 배열을 위에서 선언하고, for문에서 하나씩 넣어줄 수 있다.
}
// C++에서 정렬을 하기 위해서는 # include<algorithm> 를 선언해주어야 한다.
sort(score, score+N);
cout << score[N/2];
return 0;//정상종료시 반드시 0을 리턴해야합니다.
}
- C++에서 배열 생성은, 변수명 옆에 [N]으로 배열의 길이를 적어주면 된다. (그 외의 방법도 많다.)
- JAVA와 마찬가지로 반복문을 이용하여 입력을 받은 값을 배열에 저장하는데,
배열을 선언할 당시 배열의 길이를 제시했으므로 index를 활용하여 0 ~ (N-1) 까지
i를 증가시키며 각각의 배열 내 공간 score[i] 에 값을 입력받아 저장할 수 있다. - C++ 에서 배열의 정렬을 하기 위해서는 <algorithm> 헤더를 추가하여 sort()를 사용하면 된다.
sort()의 () 안에는 시작과 끝의 정보를 적어주는 것이다.
728x90
728x90
'Algorithm' 카테고리의 다른 글
SWEA - 2071. 평균값 구하기 (Python, Java, C++) (0) | 2022.12.30 |
---|---|
SWEA - 2068. 최대수 구하기 (Python, Java, C++) (0) | 2022.12.30 |
SWEA - 2058. 자릿수 더하기 (Python, Java, C++) (1) | 2022.12.30 |
SWEA - 1936. 1대1 가위바위보 (Python, Java, C++) (0) | 2022.12.30 |
[Python] [SWEA] 3131. 100만 이하의 모든 소수 (0) | 2022.11.08 |