기초
덧셈식 출력하기
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.printf("%d + %d = %d",a,b,a+b);
}
}
문자열 붙여서 출력하기
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String b = sc.next();
System.out.println(a+b);
}
}
문자열 돌리기
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
for(int i = 0; i<a.length(); i++){
System.out.println(a.charAt(i));
}
}
}
- 문자열: String 클래스의 메서드인 length()를 호출할 때는 괄호 ()가 필요합니다. 이는 메서드 호출이기 때문입니다.
- 배열: 배열의 length는 메서드가 아니라 속성입니다. 속성에 접근할 때는 괄호가 필요하지 않습니다.
홀짝 구분하기
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if(n%2 == 0){
System.out.println(n + " is even");
return;
}
System.out.println(n + " is odd");
}
}
문자열 겹쳐쓰기
class Solution {
public String solution(String my_string, String overwrite_string, int s) {
String answer = my_string.substring(0, s);
int overwrite_length = Math.min(overwrite_string.length(), my_string.length() - s);
answer += overwrite_string.substring(0, overwrite_length);
if (s + overwrite_length < my_string.length()) {
answer += my_string.substring(s + overwrite_length);
}
return answer;
}
}
입문
두 수의 나눗셈
class Solution {
public int solution(int num1, int num2) {
int answer = (int)((num1/(float)num2) * 1000);
return answer;
}
}
숫자 비교하기
class Solution {
public int solution(int num1, int num2) {
int answer = 0;
if(num1 == num2){
answer = 1;
}else{
answer = -1;
}
return answer;
}
}
분수의 덧셈
방법 1
class Solution {
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
int[] answer = {0, 0};
int number = numer1*denom2 + numer2*denom1;
int denom = denom1*denom2;
int max = 1;
for(int i=1; i <= number && i<= denom; i++){
if(number%i==0 && denom%i==0){
max = i;
}
}
answer[0] = number/max;
answer[1] = denom/max;
return answer;
}
}
- 시간 복잡도 → O(min(number, denom))
방법 2
class Solution {
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
// 결과 분수의 분자와 분모 계산
int numerator = numer1 * denom2 + numer2 * denom1;
int denominator = denom1 * denom2;
// 최대공약수(GCD) 계산
int gcd = gcd(numerator, denominator);
// 분수를 기약분수로 만듦
int[] answer = {numerator / gcd, denominator / gcd};
return answer;
}
// 유클리드 알고리즘을 이용하여 두 수의 GCD를 계산
private int gcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
}
- 시간 복잡도 → O(log(min(a, b)))
- GCD
배열 두 배 만들기
class Solution {
public int[] solution(int[] numbers) {
int[] answer = new int[numbers.length];
for(int i=0; i<numbers.length; i++){
answer[i] = numbers[i]*2;
}
return answer;
}
}