728x90
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 - 인프런 | 강의
자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성
www.inflearn.com
2-3번
import java.util.Scanner;
public class Main {
public String[] solution(int[] arra, int[] arrb, int n){
String[] answer = new String[n];
for(int i = 0; i < n; i++){
if(Math.abs(arra[i]-arrb[i]) == 1){
if(arra[i] < arrb[i]){
answer[i] = "B";
}else{
answer[i] = "A";
}
}else if(Math.abs(arra[i]-arrb[i]) == 2){
if(arra[i] < arrb[i]){
answer[i] = "A";
}else{
answer[i] = "B";
}
}else answer[i] = "D";
}
return answer;
}
public static void main(String[] args){
Main m = new Main();
Scanner in = new Scanner(System.in);
int num = in.nextInt();
int[] arra = new int[num];
int[] arrb = new int[num];
for(int i = 0; i < num; i++){
arra[i] = in.nextInt();
}
for(int i = 0; i < num; i++){
arrb[i] = in.nextInt();
}
in.close();
String[] answer = m.solution(arra, arrb, num);
for(int i = 0; i < num; i++)
System.out.println(answer[i]);
return ;
}
}
solution의 리턴 형식을 배열이 아니라 string으로 설정하면
맨 마지막 결과 출력을 for each로 더 고수답게 할 수 있음
import java.util.Scanner;
public class Main {
public String solution(int[] arra, int[] arrb, int n){
String answer = "";
for(int i = 0; i < n; i++){
if(Math.abs(arra[i]-arrb[i]) == 1){
if(arra[i] < arrb[i]){
answer += "B";
}else{
answer += "A";
}
}else if(Math.abs(arra[i]-arrb[i]) == 2){
if(arra[i] < arrb[i]){
answer += "A";
}else{
answer += "B";
}
}else answer += "D";
}
return answer;
}
public static void main(String[] args){
Main m = new Main();
Scanner in = new Scanner(System.in);
int num = in.nextInt();
int[] arra = new int[num];
int[] arrb = new int[num];
for(int i = 0; i < num; i++){
arra[i] = in.nextInt();
}
for(int i = 0; i < num; i++){
arrb[i] = in.nextInt();
}
in.close();
for (char x : m.solution(arra, arrb, num).toCharArray()) {
System.out.println(x);
}
}
}
요렇게~~
*절댓값 구하기 : Math.abs(수);
2-4번
import java.util.Scanner;
public class Main {
public String solution(int n){
String answer = "";
int pre = 0;
int now = 1;
int p = 0;
for(int i = 0; i < n; i++){
answer += now + " ";
p = pre;
pre = now;
now += p;
}
return answer;
}
public static void main(String[] args){
Main m = new Main();
Scanner in = new Scanner(System.in);
int num = in.nextInt();
in.close();
System.out.println(m.solution(num));
}
}
main 으로 리턴하지 않고 solution 메소드에서 바로 출력하기
import java.util.Scanner;
public class Main {
public void solution(int n){
int pre = 0;
int now = 1;
int p = 0;
for(int i = 0; i < n; i++){
System.out.print(now + " ");
p = pre;
pre = now;
now += p;
}
}
public static void main(String[] args){
Main m = new Main();
Scanner in = new Scanner(System.in);
int num = in.nextInt();
in.close();
m.solution(num);
}
}
'오늘의 취준 > 오늘의 코테' 카테고리의 다른 글
[JAVA] 알고리즘 문제풀이 입문 2.07, 2.08번 (0) | 2023.05.24 |
---|---|
[JAVA] 알고리즘 문제풀이 입문 2.05, 2.06번 (0) | 2023.05.23 |
[JAVA] 알고리즘 문제풀이 입문 2-1, 2-2번 (0) | 2023.05.20 |
[JAVA] 알고리즘 문제풀이 입문 1.11번 (0) | 2023.05.19 |
[JAVA] 알고리즘 문제풀이 입문 1.10번 (0) | 2023.05.18 |