코딩테스트 기초

SUSU·2023년 7월 1일
0

1. 문자열로 변환하기

int n 에 String 을 덧셈 해서 문자열로 바꾸기

int n = 0;
String answer = ""+n;

또는

int n = 0;
String answer = Integer.toString(n);

또는
int n = 0;
String answer = String.valueOf(n);

2. a와 b 출력하기

3. 문자열 반복해서 출력하기

for 문 쓰기

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        int n = sc.nextInt();
        
        for(int i = 0 ;i<n; i++){
            System.out.print(str);
        }
    }
}

4.대소문자 바꿔서 출력하기

자바에서 문자가 대문자인지 소문자인지 판단하는 함수는 Character 클래스의 isUpperCase()isLowerCase() 메서드를 사용할 수 있다. 판단후boolean 값으로 반환

자바에서 대소문자 변환은 toUpperCase()toLowerCase() 메서드를 사용하여 수행할 수 있다.

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        
        String answer = "";
        
        for (Character c : a.toCharArray()) {
            if(Character.isUpperCase(c)){
                answer += Character.toLowerCase(c);
            }else if(Character.isLowerCase(c)){
                answer += Character.toUpperCase(c);
                
            }   
        }
        System.out.print(answer);
                
    }
}

5.특수문자 출력하기

자바에서 쌍따옴표(")를 그대로 출력하려면 이스케이프 시퀀스(\)를 사용해야 한다.
이스케이프 시퀀스도 그대로 출력 하려면 이스케이프 시퀀스를 붙여야 한다.
[ !@#$%^&*(\'"<>?:;]

 System.out.print("!@#$%^&*(\\'\"<>?:;");

6. 덧셈식 출력하기

 Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        
        int answer = a+b;

        System.out.println(a +" + "+ b +" = " + answer);

7. 문자열 붙여서 출력하기

자바에서 문자열의 공백을 없애려면 replaceAll() 메서드를 사용할 수 있다. replaceAll() 는 정규 표현식을 사용하여 문자열에서 특정 패턴을 찾고 대체할 수 있음.

\s는 정규표현식으로 모든 공백을 의미한다.
replaceAll("\s", "") 라고 작성하면 모든 공백을 ""이렇게 공백 없음으로 바꾸어 준다는 것이다.

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        String b = sc.next();
        
        a= a.replaceAll("\\s", "");
        b= b.replaceAll("\\s", "");
        
        
        System.out.print(a);
        System.out.print(b);
    }
}

더 간단하게 함수 trim()이나, strip()를 사용해서 공백을 제거할수 있다.
strip()은 JAVA 11이후에 추가된 함수로 trim()이 제거 하지 못하는 유니코드의 공백도 제거 가능하다.

strip()의 파생으로 stripLeading()과 stripTrailing()매서드도 있다.
stripLeading()은 문자열 앞의 공백을 제거해 주고
stripTrailing()은 문자열 뒤의 공백을 제거해 준다.

8. 문자열 돌리기

charAt()매서드를 사용해서 문자를 하나씩 끊어낼수있다.

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.print(a.charAt(i)+"\n");
            
        }
    }
}

향상된 for문으로 더 간결하게 표현할수도 있다.

for (char ch : a.toCharArray())
            System.out.println(ch);
    }

System.out.print(a.charAt(i)+"\n");
System.out.print(a.charAt(i));
의 차이를 주의할것!

9.홀짝 구분하기

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 odd");
        }else{
            
            System.out.println(n+" is even");
            
        }
    }
}

아래와 같이 삼항연산자로도 표현 가능

System.out.print(n + " is "+(n % 2 == 0 ? "even" : "odd"));

10.문자열 겹쳐쓰기

my_string이"He11oWor1d",
overwrite_string이"lloWorl",
s가 2인경우

class Solution {
    public String solution(String my_string, String overwrite_string, int s) {
        String answer = "";
        System.out.println(my_string.substring(s+overwrite_string.length()));
        
        answer = my_string.substring(0, s) + overwrite_string
            + my_string.substring(s+overwrite_string.length()); 
        return answer;
    }
}```
profile
기록용

0개의 댓글