알고리즘 문제풀이 (자료구조)

Java 코딩테스트 시 알아두면 좋은 기본 개념들 ! (feat. programmers Level 0)

기매_ 2022. 10. 27. 17:49

import문 꼭 작성해주기 !

import java.util.*;

(경우에 따라 ~)
import java.io.*;
import java.lang.*;
import java.math.*;

숫자형

 

- double 값을 int로 바꾸기 (내림하기)

public int solution(int price) {
    if(price >= 500000) {
        return price*80/100;
    } else if (price>=300000) {
        return (int)Math.floor(price * 0.9);
    } else if (price>=100000) {
        return (int)Math.floor(price * 0.95);
    } else {
        return price;
    }
}

 

- 최댓값 구하기

answer = Math.max(edge1,edge2);

 

- 숫자는 숫자로 처리하기 ..! (자릿수 비교)

https://school.programmers.co.kr/learn/courses/30/lessons/120912

int count = 0;
for(int num : array) {
    while(num>0) {
        if(num%10==7) {
            count++;
        }
        num /= 10 ;
    }
}
return count;

 


문자열

 

- 문자열을 하나씩 잘라서 배열로 만들기 ex. hello -> [h, e, l, l, o]

String[] letterarr = letter.split("");

 

- 문자열 반복 : repeat 함수

letterarr[i] = letterarr[i].repeat(count2);

 

- 배열에 있는 문자열 합치기 : String.join()

String output = String.join("", letterarr);
String input = sc.nextLine();

String[] str = input.split(" ");
//System.out.println(Arrays.toString(str));

int count2 = Integer.parseInt(str[0]);
String letter = str[1];

// letter에 들어있는 각 문자를 count2 횟수만큼 반복
String[] letterarr = letter.split("");

for(int i = 0 ; i < letterarr.length ; i++ ) {
    letterarr[i] = letterarr[i].repeat(count2);
}

String output = String.join("", letterarr);
System.out.println(output);

- replace 함수

return my_string.replace(letter, "");
public String solution(String my_string, String letter) {
    /*
    String[] str = my_string.split("");

    String answer="";
    for(String string : str) {
        if(!string.equals(letter)) {
            answer += string;
        }
    }
    return answer;
    */

    return my_string.replace(letter, "");
}

- indexOf / String.valueOf

String numStr = String.valueOf(num);
String kStr = String.valueOf(k);

int answer = numStr.indexOf(kStr);
return answer<0? -1 : answer+1 ;

split(), StringTokenizer 차이점

 

https://lnsideout.tistory.com/entry/JAVA-%EC%9E%90%EB%B0%94-%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%9E%90%EB%A5%B4%EA%B8%B0-split-StringTokenizer-%EC%B0%A8%EC%9D%B4-%EB%B9%84%EA%B5%90

 

[JAVA] 자바 문자열 자르기 split(), StringTokenizer 차이 비교

자바 문자열 자르기 split(), StringTokenizer 차이점 JAVA에서 문자열을 원하는 구분자로 분리하고 싶을때 split() 과 StringTokenizer 를 사용할 수 있습니다. split메소드는 인자로 regex(정규표현..

lnsideout.tistory.com

 

public int solution(String my_string) {

    String replace = my_string.replaceAll("[^0-9]", " ");
    StringTokenizer st = new StringTokenizer(replace, " ");

    int sum = 0;
    while(st.hasMoreTokens()) {
        sum += Integer.parseInt(st.nextToken());
    }
    return sum;
}
public int solution(String my_string) {

    String replace = my_string.replaceAll("[^0-9]", " ");
    String[] str = replace.split(" ");

    int sum = 0;
    for(String tmp : str) {
        if(!(tmp.equals(""))) {
            sum += Integer.parseInt(tmp);
        }
    }
    return sum;
}


배열

- 배열의 비교 : Arrays.equals() / Arrays.deepEquals()

https://developer-talk.tistory.com/674

 

[Java]두 배열을 비교하는 방법

두 배열을 비교하는 방법 Java에서 두 배열을 비교해야 하는 경우 다음 조건을 만족하면 동일하다고 판단합니다. - 두 배열은 모두 동일한 타입입니다. - 두 배열은 동일한 수의 요소를 가지고 있

developer-talk.tistory.com