코딩테스트/백준(JAVA)

백준 코딩테스트 4-1-10807 개수 세기 코딩 문제 java로 푸는 방법

쏠솔랄라 2023. 3. 27. 23:00

 

 

백준 코딩테스트 단계별로 풀어보기

4단계 1차원 배열 1단계 10807 개수 세기 문제입니다

 

 

https://www.acmicpc.net/problem/10807

 

10807번: 개수 세기

첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거

www.acmicpc.net

 

 

https://www.acmicpc.net/step

 

단계별로 풀어보기

단계별은 @jh05013님이 관리하고 계십니다. 단계제목설명정보총 문제내가 맞은 문제1입출력과 사칙연산입력, 출력과 사칙연산을 연습해 봅시다. Hello World!132조건문if 등의 조건문을 사용해 봅시다

www.acmicpc.net

 

 


 

 

 

 

문제
총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오.

입력
첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다.
둘째 줄에는 정수가 공백으로 구분되어져있다. 
셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 
입력으로 주어지는 정수와 v는 -100보다 크거나 같으며, 100보다 작거나 같다.

출력
첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다.

 

 

정답

import java.util.Scanner;

import java.util.Arrays;

public class Main {

public static void main(String[] args) {

 

Scanner sc = new Scanner(System.in);

int N = sc.nextInt();

int[] arr = new int[N];

 

for (int i=0; i<N; i++) {

arr[i] = sc.nextInt();

}

 

int v = sc.nextInt();

int cnt=0;

 

for (int i=0; i<arr.length; i++) {

if (v==arr[i]) {

cnt++;

}

}

System.out.println(cnt);

}

}

 

=>

스캐너로 손쉽게 풀 수 있는 문제

받을 개수를 N개로 주고

N을 배열에 넣는다

for문에 i값을 N개까지 입력 받아 array에 넣고

다시 i값을 배열의 길이보다 작게 돌리고

카운팅하려는 숫자 v와 일치할 경우에만 cnt를 올림

 

 

<또다른 풀이>

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.StringTokenizer;

public class Main {

public static void main(String[] args) throws IOException {

 

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

int N = Integer.parseInt(br.readLine());

int[] arr = new int[N];

 

StringTokenizer st = new StringTokenizer(br.readLine());

 

for (int i=0; i<arr.length; i++) {

arr[i] = Integer.parseInt(st.nextToken());

}

 

int v = Integer.parseInt(br.readLine());

int cnt=0;

 

for (int i=0; i<arr.length; i++) {

if (arr[i]==v) {

cnt++;

}

}

 

System.out.println(cnt);

br.close();

}

}

 

=>

bufferedreader로 푸는 연습을 하고 싶어

꾸역꾸역 푼 문제

StringTokenizer로 입력받은 숫자의 공백 단위로 잘라 저장

 

 

 

아래가 scanner로 푼 경우, 위가 buffer로 푼 경우인데

메모리 사용량에서 유의미한 차이가 있다 

 

 


 


1-1-2557 Hello World https://developernew.tistory.com/41 <- 백준 답지 제출 방법
1-2-1000 A+B https://developernew.tistory.com/42
1-3-1001 A-B https://developernew.tistory.com/43
1-4-10998 AXB https://developernew.tistory.com/44
1-5-1008 A/B https://developernew.tistory.com/45
1-6-10869 사칙연산 https://developernew.tistory.com/46
1-7-10926 ??! https://developernew.tistory.com/47
1-8-18108 1998년생인 내가 태국에서는 2541년생?! https://developernew.tistory.com/48
1-9-10430 나머지 https://developernew.tistory.com/49
1-10-2588 곱셈 https://developernew.tistory.com/50
1-11-11382 꼬마 정민 https://developernew.tistory.com/51
1-12-10171 고양이 https://developernew.tistory.com/52
1-13-10172 개 https://developernew.tistory.com/53

2-1-1330 두 수 비교하기 https://developernew.tistory.com/54
2-2-9498 시험 성적 https://developernew.tistory.com/55
2-3-2753 윤년 https://developernew.tistory.com/56
2-4-14681 사분면 고르기 https://developernew.tistory.com/61
2-5-2884 알람 시계 https://developernew.tistory.com/68
2-6-2525 오븐 시계 https://developernew.tistory.com/69
2-7-2480 주사위 https://developernew.tistory.com/72

3-1-2739 구구단 https://developernew.tistory.com/73
3-2-10950 A+B - 3 https://developernew.tistory.com/75
3-3-8393 합 https://developernew.tistory.com/77
3-4-25304 영수증 https://developernew.tistory.com/79
3-5-25314 코딩은 체육과목 입니다 https://developernew.tistory.com/82
3-6-15552 빠른 A+B https://developernew.tistory.com/83
3-7-11021 A+B -7 https://developernew.tistory.com/85
3-8-11022 A+B -8 https://developernew.tistory.com/86
3-9-2438 별 찍기 -1 https://developernew.tistory.com/87
3-10-2439 별 찍기 -2 https://developernew.tistory.com/89
3-11-10952 A+B -5 https://developernew.tistory.com/90
3-12-10951 A+B -4 https://developernew.tistory.com/91