반응형
츄르사려고 코딩하는 코집사입니다.
1. [백준 알고리즘] 백준 21603번 K 2K 게임 자바(JAVA)
1) 문제번호 : 21603번
2) 문제 출처
https://www.acmicpc.net/problem/21603
2. 문제
싸이컴에서는 신입생의 집중력을 테스트하기 위해 아래와 같은 간단한 게임을 개발했습니다.
- 두 정수 N 과 K 가 주어집니다.
- 자연수 x 에 대해 f(x) 를 x 의 일의 자리 수라고 할 때, f(x)≠f(K) 이고 f(x)≠f(2K) 인 1 이상 N 이하의 정수 x 를 오름차순으로 모두 말합니다.
당신은 일의 자리 수를 일일이 계산하기 귀찮기 때문에, 몰래 프로그램을 만들어 게임에서 승리하려고 합니다. 말해야 하는 수의 목록을 모두 출력하는 프로그램을 만들어 봅시다.
3. 제약사항
4. 입력
두 정수 N과 K가 띄어쓰기를 사이에 두고 주어집니다.
5. 출력
첫 줄에는 당신이 말해야 할 수의 개수를 출력합니다.
둘째 줄에는 당신이 말해야 할 수를 한 줄에 모두 출력합니다. 만약 말해야 할 수가 없다면, 둘째 줄은 비워둡니다. 수는 크기 순서대로 출력해야 합니다.
6. 풀이
- f(x)는 x의 일의 자리라고 했으므로, i%10이 K%10과 다르고, i%10이 (2 * K) % 10과 다르면 List에 넣어서 출력하면 된다.
7. 소스 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
List<Integer> arr = new ArrayList<>();
for(int i = 1; i <= N; i++) {
if((i%10) != (K%10) && (i%10) != ((2*K)%10)) {
arr.add(i);
}
}
System.out.println(arr.size());
for(int i = 0; i < arr.size(); i++) {
System.out.print(arr.get(i) + " ");
}
}
}
반응형
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘] 백준 2822번 점수 계산 자바(JAVA) (0) | 2022.04.07 |
---|---|
[백준 알고리즘] 백준 2167번 2차원 배열의 합 자바(JAVA) (0) | 2022.04.03 |
[백준 알고리즘] 백준 3711번 학번 자바(JAVA) (0) | 2022.03.30 |
[백준 알고리즘] 백준 2204번 도비의 난독증 테스트 자바(JAVA) (0) | 2022.03.29 |
[백준 알고리즘] 백준 24724번 현대모비스와 함께하는 부품 관리 자바(JAVA) (0) | 2022.03.27 |
[백준 알고리즘] 백준 5073번 삼각형과 세 변 자바(JAVA) (0) | 2022.03.27 |
[백준 알고리즘] 백준 6131번 완전 제곱수 자바(JAVA) (0) | 2022.03.24 |
[백준 알고리즘] 백준 16431번 베시와 데이지 자바(JAVA) (0) | 2022.03.23 |
최근댓글