회원가입
로그인
Toggle navigation
문제
문제
전체 문제
문제 출처
단계별로 풀어보기
알고리즘 분류
추가된 문제
문제 순위
문제
푼 사람이 한 명인 문제
아무도 못 푼 문제
최근 제출된 문제
최근 풀린 문제
랜덤
출처
ICPC
Olympiad
한국정보올림피아드
한국정보올림피아드시․도지역본선
전국 대학생 프로그래밍 대회 동아리 연합
대학교 대회
카카오 코드 페스티벌
Coder's High
ICPC
Regionals
World Finals
Korea Regional
Africa and the Middle East Regionals
Europe Regionals
Latin America Regionals
North America Regionals
South Pacific Regionals
문제집
대회
2
채점 현황
랭킹
게시판
그룹
더 보기
재채점 기록
블로그
강의
실험실
도움말
BOJ Stack
BOJ Book
전체
공지
자유
질문
오타/오역/요청
게시판 공지
홍보
업데이트
solved.ac
글쓰기
질문 도움말
자주묻는 질문
[2573 - 빙산] 인풋데이터 수정이 필요합니다.
2573번 - 빙산
occidere
7년 전
1
여느때와 다름없이
BufferedReader를 사용하여 한줄을 입력
받은 뒤 .
split(" ")을 이용해서 공백 한 칸을 기준으로 쪼갠
뒤 배열에 저장하는 방식으로 문제를 풀었습니다.
그런데
런타임에러가 나길래 정올에서 제출한 뒤 인풋데이터를 확인해보니
공백이 두칸씩 들어오는 경우
가 있더군요.
ex)
0 0 0 0 10 10 0 1 0
printf("%2d %2d %2d", 0, 10, 10); 과 같은 느낌인 것 같습니다.
즉,
두자리수와의 자릿수를 맞춰주기 위해서 한자리수 앞에 공백을 한칸 추가
시킨 것 같습니다.
문제에서는
M개의 정수가 한 개의 빈 칸을 사이에 두고 주어진다.
라고만 명시가 되어있어서 라인으로 입력받은 뒤, 공백 1칸을 기준으로 쪼개는 경우는 필히 에러가 발생할 것 같습니다.
입력데이터의 공백을 1개씩으로 통일
하거나,
문제의 조건을 수정
해야 할 것 같습니다.
수정 전 런타임에러 코드:
https://www.acmicpc.net/source...
수정 후 AC 코드:
https://www.acmicpc.net/source...
/** 공백 1칸씩을 기준으로 쪼개면 런타임에러 **/ String line[]; for(i=0;i<n;i++){ line = in.readLine().split(" "); //BufferedReader 사용 for(j=0;j<m;j++) map[i][j] = Integer.parseInt(line[j]); } /** 공백 2칸짜리를 1칸으로 모두 바꿔준 뒤, 공백 1칸을 기준으로 쪼개면 AC **/ String tmp, line[]; for(i=0;i<n;i++){ tmp = in.readLine().trim().replaceAll(" ", " "); //BufferedReader 사용 line = tmp.split(" "); for(j=0;j<m;j++) map[i][j] = Integer.parseInt(line[j]); }
baekjoon
7년 전
1
데이터 수정했습니다.
댓글을 작성하려면
로그인
해야 합니다.
occidere 7년 전 1