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 |
Tags
- 정보처리기사필기요약
- 정보처리기사
- 개발자
- Java
- MySQL
- for문
- String클래스
- select문
- 자바
- order by
- 웹개발
- JavaScript
- 프론트엔드
- 백준
- github
- 프로그래머스 SQL
- select
- StringBuilder
- where
- 입출력
- scanner
- 백엔드
- 메서드
- 클래스
- Git
- 프로그래머스 sql 고득점 kit
- html
- 반복문
- SQL
- 형변환
- DML
- 자바스크립트
- 데이터 조회
- 알고리즘
- 리눅스
- 예외처리
- BufferedReader
- 프로그래밍
- Linux
- sql문
Archives
- Today
- Total
ToBe끝판왕
[ 알고리즘 ] 백준 10871번 문제 - 자바( JAVA ) 본문
반응형

주의사항
※ 백준에서 정해진 출력 형식을 출력해야 한다.
※ 백준 알고리즘에서는 클래스명을 Main으로 해주어야 한다.
백준 10871번 문제
백준 알고리즘의 단계별 문제 풀기
3단계 < 반복문 >


▶ 해당 문제 링크
https://www.acmicpc.net/problem/10871
10871번: X보다 작은 수
첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
www.acmicpc.net
코딩 하기
1) Scanner 사용( + 배열 )
import java.util.Scanner;
public class Main {
public static void main( String[] args ) {
Scanner sc = new Scanner( System.in );
int N = sc.nextInt();
int X = sc.nextInt();
int arr[] = new int[N];
for( int i=0; i<N; i++ ) {
arr[i] = sc.nextInt();
}
sc.close();
for( int i=0; i<N; i++ ) {
if( arr[i] < X ) {
System.out.print( arr[i] + " " );
}
}
}
}
2) Scanner 사용 ( + StringBuilder )
import java.util.Scanner;
public class Main {
public static void main( String[] args ) {
Scanner sc = new Scanner( System.in );
int N = sc.nextInt();
int X = sc.nextInt();
StringBuilder sb = new StringBuilder();
for( int i=0; i<N; i++ ) {
int a = sc.nextInt();
if( a < X ) {
sb.append( a + " " );
}
}
System.out.print( sb );
}
}
3) BufferedReader 사용
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main {
public static void main( String[] args ) throws IOException {
BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
StringTokenizer st = new StringTokenizer( br.readLine(), " " );
int N = Integer.parseInt( st.nextToken() );
int X = Integer.parseInt( st.nextToken() );
StringBuilder sb = new StringBuilder();
st = new StringTokenizer( br.readLine(), " " );
for( int i=0; i<N; i++ ) {
int a = Integer.parseInt( st.nextToken() );
if( a < X ) {
sb.append(a).append( " " );
}
}
System.out.println( sb );
}
}
문제 해결
1) Scanner 사용( + 배열 )
• arr[ ] 배열을 선언하고 배열의 크기를 N으로 할당한다.
• 배열에 입력받은 수열을 반복문을 통해서 저장한다.
• 다시 한번 반복문으로 배열을 검사하여 X보다 작은 수를 출력한다.
int arr[] = new int[N];
for( int i=0; i<N; i++ ) {
arr[i] = sc.nextInt();
}
sc.close();
for( int i=0; i<N; i++ ) {
if( arr[i] < X ) {
System.out.print( arr[i] + " " );
}
2) Scanner 사용( + StringBuilder )
입력받음과 동시에 if 조건문을 통해서 X보다 작은 경우 StringBuilder에 저장하여 출력한다.
StringBuilder sb = new StringBuilder();
for( int i=0; i<N; i++ ) {
int a = sc.nextInt();
if( a < X ) {
sb.append( a + " " );
}
}
System.out.print( sb );
}
2) BufferedReader 사용
• StringTokenizer를 사용해 구분자 " " ( 스페이스, 공백 ) 을 통해서 N과 X를 입력한다.
• for 반복문에서도 " " ( 스페이스, 공백 ) 을 통해서 수열 a를 입력한다.
StringTokenizer st = new StringTokenizer( br.readLine(), " " );
if( a < X ) {
sb.append(a).append( " " );
• 각 코딩 시간 비교

반응형
'■ 알고리즘 > 백준 JAVA' 카테고리의 다른 글
[ 알고리즘 ] 백준 1110번 문제 - 자바( JAVA ) (0) | 2022.05.27 |
---|---|
[ 알고리즘 ] 백준 10951번 문제 - 자바( JAVA ) (0) | 2022.05.27 |
[ 알고리즘 ] 백준 2439번 문제 - 자바( JAVA ) (0) | 2022.05.26 |
[ 알고리즘 ] 백준 11021번 문제 - 자바( JAVA ) (0) | 2022.05.26 |
[ 알고리즘 ] 백준 2741번 문제 - 자바( JAVA ) (0) | 2022.05.25 |