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
- 코딩독학
- 속초여행
- DOM
- 아스키코드
- richtext
- 알고리즘
- 컴퓨터과학
- 추상클래스
- FLUTTER
- 부스트코스
- 장고
- 건대입구맛집
- BeautifulSoup
- python3
- 성수동카페
- 강원도속초맛집
- 자바
- JavaScript
- 상속
- 정렬알고리즘
- 노마드코더
- Python
- pipenv
- 포인터
- popupmenubutton
- Django
- 남양주맛집
- c언어문자열
- 가상환경
- removetooltip
Archives
- Today
- Total
YUYANE
JAVA / nextInt( ) 다음에 nextLine( )을 입력 받을 때 생길 수 있는 오류(백준 4344 자바) 본문
Programming Languages/JAVA
JAVA / nextInt( ) 다음에 nextLine( )을 입력 받을 때 생길 수 있는 오류(백준 4344 자바)
YUYA 2020. 11. 20. 16:501. Scanner nextLine( )은 문자 '한 줄'을 입력 받아서 읽어들인다.
- '줄 넘김'을 기준으로 입력 받는다.
2. Scanner next( )는 문자 '한 단어'씩 읽어들임
- '공백' / ' ' 을 기준으로 입력 받는다.
3. nextInt( ) 다음에 nextLine( )을 입력 받을 때 생길 수 있는 오류
int C = scanner.nextInt(); //'5' 입력
String scores = scanner.nextLine(); //'5 50 50 70 80 100' 입력
- 예상과 달리 scores의 값은 ""이다.
- nextLine( )는 '줄 넘김'을 기준으로 입력을 받는데,
- int C에 5를 입력 하고 enter(줄 넘김)을 누르면
- scores 값은 enter를 누르기 이전 값인 ""이 되어버린다.
4. 해결하려면, 중간에 줄 넘김을 받도록 코드 한 줄을 추가하자.
int C = scanner.nextInt();
scanner.nextLine(); //추가
String scores = scanner.nextLine();
** 백준 4344번 자바 문제풀이 코드
import java.util.Scanner;
public class _4344 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int C = scanner.nextInt();
float average=0;
float total=0;
float count=0;
float percentage=0;
for(int p=0; p<C; p++){
if(p==0)
scanner.nextLine();
String scores = scanner.nextLine();
String scoreslist[] = scores.split(" "); // 모든 점수를 배열로
for(int i=0; i<scoreslist.length; i++){ //총합 구하기
if(i==0)
continue;
else{
total+=Integer.parseInt(scoreslist[i]);
}
}
average = total/ Integer.parseInt(scoreslist[0]); //70
for(int i=1; i< scoreslist.length; i++){ //평균보다 높은 값
if(Integer.parseInt(scoreslist[i])>average)
count++; //2
}
int people = Integer.parseInt(scoreslist[0]);
percentage=100*count/people;
System.out.println(String.format("%.3f",percentage)+"%");
total=0;
count=0;
}
}
}
'Programming Languages > JAVA' 카테고리의 다른 글
JAVA / 아스키코드 (백준 11654) (0) | 2020.11.25 |
---|---|
JAVA / 각 자릿수의 합을 구하기 (백준 4673번) (0) | 2020.11.23 |
JAVA / split으로 string 문자열 나누어 배열에 저장하기 (백준 8958 자바) (0) | 2020.11.20 |
JAVA / 상속 - 추상 클래스 (0) | 2020.10.02 |
JAVA/ 상속 - 캐스팅 (업캐스팅, 다운캐스팅) (0) | 2020.10.01 |
Comments