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 자격증
- network
- 유선LAN
- 물리구성도
- 네트워크
- 파이썬 1712
- 인프콘
- 역캡슐화
- 논리구성도
- 상속
- l3 스위치
- 파이썬
- AWS CLF
- 자바의 정석
- 프로토콜
- 백준 1712
- 인터페이스
- TCP/IP
- java
- 데이터 송수신
- 다형성
- 남궁성
- 개발바닥
- 테슬라폰
- 계층화
- 백준 2775
- 10866
- 1764
- modifiers
Archives
- Today
- Total
병훈's Blog
SWEA - 2071. 평균값 구하기 (Python, Java, C++) 본문
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5QRnJqA5cDFAUq
[입력]
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 10개의 수가 주어진다.
[출력]
출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.
<Python>
for t in range(1, int(input())+1):
a = list(map(int, input().split()))
print(f'#{t} {round(sum(a)/10)}')
평균을 구하는 문젠데, 반올림을 해야했다.
- 그냥 // 로 나누어 정수를 구하면, 반올림이 아니라 버림이 되기에 실수에서 round()를 사용해야 한다.
- 실수에서 round()를 해야 반올림이 되는 것이기에 //가 아니라 /를 사용하여 결과가 실수가 되도록 했다.
<JAVA>
import java.util.*;
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T;
T=sc.nextInt();
for(int test_case = 1; test_case <= T; test_case++)
{
int result = 0;
for (int i = 10; i > 0; i--) result += sc.nextInt();
//Math.round를 사용하여 반올림 할 때, 나누는 수가 10이면 반올림이 안되고, 10.0으로 실수형으로 나눠야 반올림이 먹힌다.
//왜냐하면 result/10은 바로 정수로 나와서, 28.6이 아니라 28로 나오기 때문이다.
System.out.printf("#%d %d\n", test_case, Math.round(result/10.0));
}
}
}
- 평균을 구하는 것이기에 배열을 사용하지 않고, 입력받은 정수들을 차례대로 result에 더해주었다.
- Python과 마찬가지로 실수에서 반올림을 해줘야 하기에 10.0으로 나누어 실수가 나오도록 했고,
- 실수에서 round를 사용하여 반올림을 하기 위해 round()가 있는 Math 클래스의 round를 사용하였다.
- Math 클래스는 System 클래스와 마찬가지로, import하지 않아도 기본으로 사용할 수 있는 내장클래스다.
- 출력형식은 printf()를 사용하여 문자와 변수를 동시에 출력할 수 있도록 하였다.
<C++>
#include<iostream>
#include<cmath>
using namespace std;
int main(int argc, char** argv)
{
int test_case;
int T;
cin>>T;
for(test_case = 1; test_case <= T; ++test_case)
{
int sum = 0;
for(int i = 0; i < 10; i++) {
int tmp;
cin >> tmp;
sum += tmp;
}
// 반올림을 하려면 <cmath> 헤더파일을 추가해야 한다.
cout << '#' << test_case << ' ' << round(sum/10.0) << '\n';
}
return 0;//정상종료시 반드시 0을 리턴해야합니다.
}
JAVA의 방식과 유사하고, C++에서는 반올림을 위한 round()를 사용하기 위해 <cmath> 헤더를 추가해야 한다.
출력의 마지막에는 줄바꿈을 위해 '\n'을 넣었다.
728x90
728x90
'Algorithm' 카테고리의 다른 글
SWEA - 1209. [S/W 문제해결 기본] 2일차 - Sum (Python, Java) (1) | 2023.01.01 |
---|---|
SWEA - 2068. 최대수 구하기 (Python, Java, C++) (0) | 2022.12.30 |
SWEA - 2063. 중간값 찾기 (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 |