일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 헥사고날 아키텍처
- DP
- 문자열
- 데이터 flow
- 파이썬
- 포트앤어댑터 아키텍처
- 백준
- BFS
- 스프링
- JPA
- 위상정렬
- disjoint set
- equals
- springboot
- 다익스트라
- ddd
- series
- spring security
- pandas
- 알고리즘
- 이펙티브 자바
- 자바
- 비트마스크
- 세그먼트 트리
- java
- dfs
- docker
- Redis
- dataframe
- UML
- Today
- Total
코딩못하는사람
printf,println의 차이와 소수점 자리 출력(백준 4344) 본문
코드
import java.io.BufferedReader; | |
import java.io.IOException; | |
import java.io.InputStreamReader; | |
import java.util.ArrayList; | |
import java.util.StringTokenizer; | |
public class 평균_4344 { | |
public static void main(String[] args) throws NumberFormatException, IOException { | |
BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); | |
int n=Integer.parseInt(br.readLine()); | |
StringTokenizer st; | |
for (int i=0;i<n;i++) { | |
st=new StringTokenizer(br.readLine()); | |
int sum=0; | |
int t=Integer.parseInt(st.nextToken()); | |
ArrayList<Integer> m=new ArrayList<>(); | |
for (int j=0;j<t;j++) { | |
int temp=Integer.parseInt(st.nextToken()); | |
sum+=temp; | |
m.add(temp); | |
} | |
float mean=(float)sum/t; | |
int ans=0; | |
for (int z:m) { | |
if (z>mean) ans++; | |
} | |
System.out.println(String.format("%.3f%%",(float)100*ans/t)); | |
//System.out.printf("%.3f%%\n",(float)ans/t*100); | |
} | |
} | |
} |
배운점
printf,println의 차이
printf
printf는 c에서 쓰던 것과 방식이 같다.
System.out.printf ("출력서식",출력할 내용) ==> %d(정수) %f(실수) %c(문자) %s(문자열)들을
사용해서 표기 할 수 있다. 당연히 %.2f와 같은 방식으로 소수 몇번 째 자리까지 출력할지 정할 수 있다.
println
System.out.println("정답은"+result)와 같이 문자열은 ""로 감싸주고 변수들을 섞어서 원하는 출력을 만들어 준다. 여기서 +는 한쪽이라도 문자열일 때는 문자열을 이어 붙이고 숫자끼리라면 덧셈을 해준다.
ex) System.out.println("3+5" +5); >>3+55
ex)System.out.println("3+5 =" +(3+5)); >>3+5=8
print와 println의 차이는 자동으로 개행해주느냐 안해주느냐의 차이다.ln이 개행해줌.
소수점 출력방법 (Math.round, String.format)
Math.round()
Math.round는 소수점 첫번째 자리에서 반올림해서 정수로 나타내준다.
pie = 3.14159265358979
ex) Math.round(pie)=3 이 되는 것이다. 여기서 소숫점을 출력하려면 좀 귀찮은대, 소숫점 첫번째 자리까지 표기하려면 10을 곱한수를 매개변수로 넣고 결과를 다시 10으로 나눠줘야 한다.(첫번째 자리에서 반올림해서 리턴해주므로)
둘째 자리라면 100,셋째 자리라면 1000 ~ 귀찮다.
String.format()
String.format방식은 우리가 아는 printf와 유사하다. 위의 방식을 사용하면 된다.
정답에 %를 표기해야 하는데 String.format방식에서 서식으로 인식하므로 %%로 써줘야 했다.
'자바 메모장 > 개념 및 문법' 카테고리의 다른 글
Immutable,mutable 객체 (0) | 2021.02.10 |
---|---|
JVM 메모리 구조 정리 (2) | 2021.02.09 |
배열 정렬 Array.sort() (0) | 2021.02.08 |
StringBuilder를 쓰는 이유 (2) | 2021.02.07 |
문자열 String (0) | 2021.01.28 |