일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코딩테스트
- IAM 사용자
- 2164 자바
- 자바
- 데보션영 3기
- dfs
- 백준 10866 자바
- 자바 2164
- 28278 스택 2
- 10813 자바
- 2798 자바
- 2346 풍선 터뜨리기
- 자바 10866
- 파이썬
- 티움투어
- 1010 자바
- 자바 1003
- 10807 자바
- 백준 28278 자바
- BFS
- 백준 2346 자바
- 백준
- 그리디
- 자바 2346
- 자바 28278
- 백준 1764 자바
- 10810 자바
- IAM Identity Center
- 2748 자바
- 1764 자바
- Today
- Total
자두의 데브로그
[자바] 10807번 개수 세기, 10810번 공 넣기, 10813번 공 바꾸기 본문
체력 이슈로 3일차는 매우 난이도가 낮은 문제들로 ,, 한 번에 풀이해보겠습니다~
1. [자바] 10807번 개수 세기 (https://www.acmicpc.net/problem/10807)
[문제 이해]
배열에 입력 받은 값을 저장하고 가장 마지막에 입력 받은 정수가 배열 안에 몇 개나 있는지 찾는 문제였다.
[문제 풀이]
arr에 차례로 저장하고 비교해서 출력만 하면 되는 간단한 문제였다!
import java.io.*;
import java.util.*;
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());
StringTokenizer st = new StringTokenizer(br.readLine());
int[] arr = new int[N];
for(int i = 0; i < N; i++){
arr[i] = Integer.parseInt(st.nextToken());
}
int M = Integer.parseInt(br.readLine());
int sum = 0;
for(int i = 0; i < N; i++){
if(arr[i] == M){
sum+=1;
}
}
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write(String.valueOf(sum));
bw.flush();
bw.close();
}
}
2. [자바] 10810번 공 넣기 (https://www.acmicpc.net/problem/10810)
[문제 이해]
배열에 값을 넣는 문제였는데 하나의 인덱스에는 하나의 값만 들어갈 수 있다고 쓰여있어서 추가적으로 작업을 해야될 것 같은 느낌이 들 수 있지만 하나의 인덱스에 별다른 처리를 하지 않으면 원래 하나의 값만 들어갈 수 있고 덮여 쓰여진다는 것만 알고 있으면 쉽게 풀 수 있는 문제였다.
[문제 풀이]
StringTokenizer를 for문 안에 넣어서 세 개의 변수를 받을 때 BufferedReader로 읽어오면서 초기화될 수 있게 지정해야되는데 처음에 for문 밖에 넣어뒀더니 오류가 낫다. (당연함) 입출력에서 아직도 헤맬 때가 있는 거 보면 개념을 다시 공부해야될지도,,
import java.io.*;
import java.util.*;
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 M = Integer.parseInt(st.nextToken());
int[] arr = new int[N];
for(int e = 0; e < M; e++){
st = new StringTokenizer(br.readLine());
int i = Integer.parseInt(st.nextToken());
int j = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
for(int f = i-1; f < j; f++){
arr[f] = k;
}
}
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
for(int i = 0; i < N; i++){
bw.write(String.valueOf(arr[i]) + " ");
}
bw.flush();
bw.close();
}
}
3. [자바] 10813번 공 바꾸기 (https://www.acmicpc.net/problem/10813)
[문제 이해]
배열의 원소끼리 바꾸는 문제로 tmp 와 같이 임시 변수를 만들어서 값을 바꾸기만 하면 되는 간단한 문제였다.
[문제 풀이]
for문 안에 임시로 사용할 변수를 만들어서 바꿀 값을 저장해두었다가 이 값을 원래 원하는 위치에 저장하는 방식으로 구현하였다. 문제에서는 바구니가 1부터 시작함으로 0부터 시작하는 배열의 인덱스에 맞춰주기 위해서는 각 인덱스에 모두 -1을 해줘야 한다.
import java.io.*;
import java.util.*;
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 M = Integer.parseInt(st.nextToken());
int[] arr = new int[N];
for(int i = 0; i < N; i++){
arr[i] = i+1;
}
for(int e = 0; e < M; e++){
st = new StringTokenizer(br.readLine());
int i = Integer.parseInt(st.nextToken());
int j = Integer.parseInt(st.nextToken());
int tmp = arr[i-1];
arr[i-1] = arr[j-1];
arr[j-1] = tmp;
}
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
for(int i = 0; i < N; i++){
bw.write(String.valueOf(arr[i]) + " ");
}
bw.flush();
bw.close();
}
}
'코딩테스트 > Java' 카테고리의 다른 글
[자바] 백준 1010번 다리 놓기 (0) | 2024.07.04 |
---|---|
[자바] 백준 10870번 피보나치 수 5, 2748번 피보나치 수 2 (0) | 2024.07.04 |
[자바] 백준 28278번 스택 2 (0) | 2024.07.03 |
[자바] 백준 10773번 제로 (0) | 2024.07.03 |
[자바] 백준 2346번 풍선 터뜨리기 (0) | 2024.07.02 |