[JAVA] ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์œ ์šฉํ•œ ์ฝ”๋“œ ๋ชจ์Œ

 

 

ํ˜•๋ณ€ํ™˜

- ํ˜•๋ณ€ํ™˜ ์ •๋ฆฌ (String๊ณผ Stringbuilder/buffer๋Š” ๋˜‘๊ฐ™์ด ์“ฐ์ด๋Š” ๋“ฏ)

// int -> String
String str = String.valueOf(n);

// String -> int
int temp = Integer.parseInt(str);

// int -> char
char value_char  = (char) value_int;
char value_char = Character.forDigit(value_int , radix); // radix = ์ง„์ˆ˜

// char -> int
int myInt = Character.getNumericValue(myChar);
int myInt = myChar - '0';

// long -> String
String str = String.valueOf(n);

// String -> long
long temp = Long.parselong(str);

// char -> String
String temp = String.valueOf(char);

// String -> char
char temp = str.charAt(i);

Math

- ์ œ๊ณฑ, ์ œ๊ณฑ๊ทผ

if(Math.pow((int)Math.sqrt(n),2) == n) {
            return (int)Math.pow(Math.sqrt(n)+1,2);
            }

- ์ตœ์†Ÿ๊ฐ’ ์ตœ๋Œ“๊ฐ’

class Solution {
    public String solution(String s) {
        String answer = "";
        
        String[] numbers = s.split(" ");
        int min = Integer.MAX_VALUE;
        int max = Integer.MIN_VALUE;
        
        for(int i = 0; i < numbers.length; i++){
            int number = Integer.parseInt(numbers[i]);
            
            min = Math.min(min, number);
            max = Math.max(max, number);
        }

        answer = min+ " " +max;
        return answer;
    }
}

Stirng

- index

char charAtIdx6 = str.charAt(6);
String stringAtIdx6 = Character.toString(characterAtIdx6)

-  substring

String str = "abcdefghijklmn";
String piece1 = str.substring(3);    // 3์ดํ›„ ์ „๋ถ€
String piece2 = str.substring(3,7);  // 3~6
String piece3 = str.substring(3,4);  // 3ํ•˜๋‚˜

- ๋ฌธ์ž์—ด ๋น„๊ต : myString.equals(yourString)

String str1 = "Hello";
String str2 = "World";
String str3 = "Hello";

str1.equals(str2);  // false
str1.equals(str3);  // true

 

- toString(), valueOf() ์ฐจ์ด

toString() :            null ๊ฐ’์„ ํ˜• ๋ณ€ํ™˜ ์‹œ NullPointerException(NPE)์ด ๋ฐœ์ƒ / Object์˜ ๊ฐ’์ด String์ด ์•„๋‹ˆ์—ฌ๋„ ์ถœ๋ ฅ
String.valueOf() : ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ null์ด ์˜ค๋ฉด "null"์ด๋ผ๋Š” ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅ

 

- char ์ˆซ์ž ๋ฌธ์ž ํ™•์ธ

Character.isDigit(a);          // ์ˆซ์ž ํ™•์ธ
Character.isLetter(a);         // ๋ฌธ์ž ํ™•์ธ
Character.isLetterOrDigit(a);  // ์˜์–ดor์ˆซ์ž ํ™•์ธ

- ์ˆซ์ž ํ™•์ธ

for (int i=0;i<s.length();i++) {
            if (s.charAt(i) < '0' || s.charAt(i) > '9')
        }

- ์•ŒํŒŒ๋ฒณ ํ™•์ธ

for (int i=0;i<s.length();i++) {
            if (s.charAt(i) >= 'a' || s.charAt(i) <= 'z') 
        }

- contains

String str = "Character";
System.out.println(str.contains("h"));    // true false

- upper & lowercase

// String
String txt = "Hello World";
txt.toUpperCase();
txt.toLowerCase();

// char
Character.toUpperCase('a');
Character.toLowerCase('a');

- check upper & lowercase

// String
isStringUpperCase(strValue1);
isStringLowerCase(strValue1);

// char
Character.isUpperCase(myChar);
Character.isLowerCase(myChar);

- replace, replaceAll(1๋ฒˆ๋งํฌ), replaceFirst(2๋ฒˆ๋งํฌ)

  String result1 = str.replace("abc", "์™•");
  String result2 = str.replaceAll("[abc]", "์™•");
  String result3 = str.replaceFirst("abc", "์™•);

๊ด€๋ จ ์ •๊ทœ์‹ https://denodo1.tistory.com/216

 

- String, Array ๊ด€๋ จ

import java.util.*;
class Solution {
	public long solution(long n) {
		String[] list = String.valueOf(n).split(""); 
		Arrays.sort(list);  // ๋ฐฐ์—ด ์ •๋ ฌ

		StringBuilder sb = new StringBuilder();
		for (String aList : list) sb.append(aList);       

		return Long.parseLong(sb.reverse().toString());
	}
}

* StringBuilder / StringBuffer : ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด ๊ฐ์ฒด๋ฅผ ๊ณ„์† ์ €์žฅํ•˜๋Š” ๊ธฐ์กด ๋ถ€ํ•˜๊ฐ€ ํฐ String(๋ถˆ๋ณ€) ๋ฐฉ์‹๊ณผ ๋‹ค๋ฅด๊ฒŒ ๊ธฐ์กด ๋ฐ์ดํ„ฐ์— ๋”ํ•˜๋Š” ๋ฐฉ์‹

์ฐจ์ด : StringBuffer๋Š” ๊ณตํ†ต ๋ฉ”์†Œ๋“œ๊ฐ€ ๋™๊ธฐํ™”๋˜๋ฏ€๋กœ, ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ๋Š” StringBuffer๋ฅผ ์‚ฌ์šฉ!

 

StringBuilder/Buffer ๋ฉ”์„œ๋“œ ์ •๋ฆฌ

sb.append(๊ฐ’)               // StringBuffer, StringBuilder ๋’ค์— ๊ฐ’์„ ๋ถ™์ธ๋‹ค
sb.insert(์ธ๋ฑ์Šค, ๊ฐ’)         // ํŠน์ • ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ๊ฐ’์„ ์‚ฝ์ž…ํ•œ๋‹ค
sb.delete(์ธ๋ฑ์Šค, ์ธ๋ฑ์Šค)      // ํŠน์ • ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ์ธ๋ฑ์Šค๊นŒ์ง€ ๊ฐ’์„ ์‚ญ์ œํ•œ๋‹ค
sb.indexOf(๊ฐ’)              // ๊ฐ’์ด ์–ด๋Š ์ธ๋ฑ์Šค์— ๋“ค์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค
sb.substring(์ธ๋ฑ์Šค, ์ธ๋ฑ์Šค)   // ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ์ธ๋ฑ์Šค๊นŒ์ง€ ๊ฐ’์„ ์ž˜๋ผ์˜จ๋‹ค
sb.length()                 // ๊ธธ์ด ํ™•์ธ
sb.replace(์ธ๋ฑ์Šค, ์ธ๋ฑ์Šค, ๊ฐ’)  // ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ์ธ๋ฑ์Šค๊นŒ์ง€ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ
sb.reverse()                // ๊ธ€์ž ์ˆœ์„œ๋ฅผ ๋’ค์ง‘๋Š”๋‹ค

 

* String์˜ concat (๋ฌธ์ž์—ด ์ด์–ด๋ถ™์ด๊ธฐ) ๋„ ์žˆ์ง€๋งŒ ์ƒˆ๋กœ ๊ฐ์ฒด ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹์ž„

String strSample1 = "Hello";
String strSample2 = "World";
String result1 = strSample1 + strSample2;
String result2 = strSample1.concat(strSample2);

* ๋ฐ˜๋ฉด์— StringBuilder์˜ append

StringBuilder result3 = new StringBuilder();
result3.append(strSample1);
result3.append(strSample2);

*

String->StringBuilder ๋ณ€ํ™˜

StringBuilder -> String ๋ณ€ํ™˜

StringBuilder sb = new StringBuilder(newStr); // String -> StringBuilder
String str = newSb.toString();                // StringBuilder -> String

 

์ฐธ๊ณ  ์ฝ”๋“œ

import java.util.*;

class Solution {
    public String solution(String s) {
        String answer = "";
        char[] chararr = s.toCharArray();
        Arrays.sort(chararr);
        
        String newStr = String.valueOf(chararr);
        
        StringBuilder sb = new StringBuilder(newStr);
        answer = sb.reverse().toString();
        return answer;
    }
}

๋ฐฐ์—ด

- ์„ ์–ธ

1) ์ผ๋ฐ˜ ๋ฐฐ์—ด

// ์„ ์–ธ๊ณผ ๋™์‹œ์— ๋ฐฐ์—ด ํฌ๊ธฐ ํ• ๋‹น
int[] arr = new int[5];
String[] arr = new String[5];

2) ArrayList 

ArrayList list = new ArrayList();//ํƒ€์ž… ๋ฏธ์„ค์ • Object๋กœ ์„ ์–ธ๋œ๋‹ค.
ArrayList<Student> members = new ArrayList<Student>();//ํƒ€์ž…์„ค์ • Student๊ฐ์ฒด๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅ
ArrayList<Integer> num = new ArrayList<Integer>();//ํƒ€์ž…์„ค์ • intํƒ€์ž…๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅ
ArrayList<Integer> num2 = new ArrayList<>();//new์—์„œ ํƒ€์ž… ํŒŒ๋ผ๋ฏธํ„ฐ ์ƒ๋žต๊ฐ€๋Šฅ
ArrayList<Integer> num3 = new ArrayList<Integer>(10);//์ดˆ๊ธฐ ์šฉ๋Ÿ‰(capacity)์ง€์ •
ArrayList<Integer> list2 = new ArrayList<Integer>(Arrays.asList(1,2,3));//์ƒ์„ฑ์‹œ ๊ฐ’์ถ”๊ฐ€

 

- ์š”์†Œ ์ถœ๋ ฅ

1) ์ผ๋ฐ˜ ๋ฐฐ์—ด : Arrays.toString(arr)

System.out.println(Arrays.toString(arr));

2) ArrayList : Iterator๋กœ ์ถœ๋ ฅ!

Iterator iter = list.iterator();             //Iterator ์„ ์–ธ 
while(iter.hasNext()){                       //๋‹ค์Œ๊ฐ’์ด ์žˆ๋Š”์ง€ ์ฒดํฌ
    System.out.println(iter.next());         //๊ฐ’ ์ถœ๋ ฅ
}

 

- ์ธ๋ฑ์Šค๋กœ ์š”์†Œ ์–ป์–ด์˜ค๊ธฐ

1) ์ผ๋ฐ˜ ๋ฐฐ์—ด : ๋ฐฐ์—ด[์ธ๋ฑ์Šค]

2) ArrayList : ์–ด๋ ˆ์ด๋ฆฌ์ŠคํŠธ.get(์ธ๋ฑ์Šค)

 

- ์š”์†Œ๋กœ ์ธ๋ฑ์Šค ์–ป์–ด์˜ค๊ธฐ

1) ์ผ๋ฐ˜๋ฐฐ์—ด

Arrays.asList(array).contains(value);

2) ArrayList

myList.indexOf("~") // ์—†์œผ๋ฉด -1;

 

- ์š”์†Œ ์ถ”๊ฐ€

1) ์ผ๋ฐ˜ ๋ฐฐ์—ด

  <a> ์ƒˆ๋กœ์šด ๋ฐฐ์—ด =  Arrays.copyOf(๋ฐฐ์—ด, ์ถ”๊ฐ€ํ• ๊ธธ์ด); ํ›„ ์ถ”๊ฐ€๋œ ์ธ๋ฑ์Šค์— ๊ฐ’ ์ €์žฅ

String[] arr = {"a", "b", "c"};

String[] newArr = Arrays.copyOf(arr, arr.length + 2);

newArr[arr.length + 0] = "d";
newArr[arr.length + 1] = "e";

  <b> ์ถ”๊ฐ€๋œ ๊ธธ์ด๋งŒํผ์˜ ์ƒˆ ๋ฐฐ์—ด ์„ ์–ธ ํ›„ System.arraycopy(์›๋ž˜ ๋ฐฐ์—ด, 0, ์ƒˆ๋กœ์šด ๋ฐฐ์—ด, 0, ๋ฐฐ์—ด๊ธธ์ด);

String[] arr = {"a", "b", "c"};

String[] newArr = new String[arr.length + 2];
System.arraycopy(arr, 0, newArr, 0, arr.length);

newArr[arr.length + 0] = "d";
newArr[arr.length + 1] = "e";

  <c> ArrayList ์„ ์–ธ ํ›„ list.add ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๊ฐ’ ์ €์žฅํ•˜๊ณ  |  ์ƒˆ๋กœ์šด ๋ฐฐ์—ด = list.toArray(new String[0]); ๋‹ค์‹œ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.

String[] arr = {"a", "b", "c"};

List<String> list = new ArrayList<>(Arrays.asList(arr));

list.add("d");
list.add("e");

String[] newArr = list.toArray(new String[0]);

ํŠน์ • ์œ„์น˜์— ์ถ”๊ฐ€

fruits.add(0, "apple");

- ์š”์†Œ ์‚ญ์ œ

ArrayList

// index 1 ์‚ญ์ œ
list.remove(1);

์ฐธ๊ณ : https://hianna.tistory.com/564#:~:text=ArrayList%EC%9D%98%20remove()%20%EB%A9%94%EC%86%8C%EB%93%9C,ArrayList%EC%97%90%EC%84%9C%20%EC%82%AD%EC%A0%9C%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.&text=remove()%20%EB%A9%94%EC%86%8C%EB%93%9C%EC%9D%98%20%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0,%EC%9D%98%20%EA%B0%92%EC%9D%B4%20%EC%82%AD%EC%A0%9C%EB%90%A9%EB%8B%88%EB%8B%A4. 

 

- ์š”์†Œ ํฌํ•จ

list.contains("hello"); // boolean ๋ฐ˜ํ™˜

 

- ๊ธธ์ด/์‚ฌ์ด์ฆˆ

1) ์ผ๋ฐ˜ ๋ฐฐ์—ด   : arr.length  (  ์ฃผ์˜ String์ด str.length()   ) 

2) ArrayList : list.size()

 

- ์ •๋ ฌ

 

1) ์ผ๋ฐ˜ ๋ฐฐ์—ด

int[] arr = {1, 26, 17, 25, 99, 44, 303};

Arrays.sort(arr);                             // ์˜ค๋ฆ„์ฐจ์ˆœ
Arrays.sort(tmp, Comparator.reverseOrder());  // ๋‚ด๋ฆผ์ฐจ์ˆœ

 

์˜ˆ์ˆ )

import java.util.*;

class Solution {
  public String[] solution(String[] files) {

		Arrays.sort(files, new Comparator<String>() {
			@Override
			public int compare(String o1, String o2) {
				
				String h1 = o1.split("[0-9]")[0];
				String h2 = o2.split("[0-9]")[0];
				
				int result = h1.toLowerCase().compareTo(h2.toLowerCase());

				if ( result == 0 ) {					
					// ๋ฌธ์ž์—ด์ด ๊ฐ™์€ ๊ฒฝ์šฐ ์ˆซ์ž๋ฅผ ๋น„๊ตํ•œ๋‹ค.
					result = findNum(o1,h1)-findNum(o2,h2);
				}
				return result;
			}
		});
		return files;
  }
    
 private int findNum( String s, String h ) {		
		s = s.replace(h, "");		
		String result ="";		
		for( char c : s.toCharArray()) {
			if( Character.isDigit(c) && result.length() < 5 ) {
				result+=c;
			}else
				break;
		}
		return Integer.valueOf(result);
	}    
}

compareto ์„ค๋ช…)https://mine-it-record.tistory.com/133

2) ArrayList

// ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ
Collections.sort(list);

// ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ
Collections.sort(list, Collections.reverseOrder());

// ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์—†์ด ์˜ค๋ฆ„์ฐจ์ˆœ
Collections.sort(list, String.CASE_INSENSITIVE_ORDER);

// ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์—†์ด ๋‚ด๋ฆผ์ฐจ์ˆœ
Collections.sort(list, Collections.reverseOrder(String.CASE_INSENSITIVE_ORDER) );

 

- ๋ณ€ํ™˜ :    [ ArrayList -> ๋ฐฐ์—ด]     /      [๋ฐฐ์—ด -> ArrayList]  

1) List -> ๋ฐฐ์—ด (List์˜ toArray ์‚ฌ์šฉ)

String[] array = myList.toArray(new String[myList.size()]);

2) ๋ฐฐ์—ด -> List (Array์˜ Arrays.asList ์‚ฌ์šฉ)

ArrayList<String> arrayList = new ArrayList<>(Arrays.asList(myArray));

* ์ฃผ์˜ : Object ์ž๋ฃŒํ˜•์ผ๋•Œ๋งŒ ๋ณ€ํ™˜ ๊ฐ€๋Šฅํ•œ๋“ฏ

 

- ๋ณ€ํ™˜2 [String ->char ๋ฐฐ์—ด]  /   [char ๋ฐฐ์—ด -> String]

1) String -> char ๋ฐฐ์—ด : toCharArray ์‚ฌ์šฉ

char[] ch = phone_number.toCharArray();

2) char๋ฐฐ์—ด -> String : valueOf(๋ฐฐ์—ด) ์‚ฌ์šฉ 

String newString = String.valueOf(ch);

 


HashMap

Map<String, Integer> hm = new HashMap<>();

- put

hm.put(key, value)

- getOrDefault

hm.getOrDefault(key, default)

-get

value = map.get(key)

- remove(key)

 

- put & getOrDefault

for (String p : participant) {
	hm.put(p, hm.getOrDefault(p, 0)+1);
}

- containsKey(key), containsValue(val)

 

- keySet & get

for (String key : hm.keySet()) {
	if (hm.get(key) != 0) {
    	answer = key;
        break;
    }
}

- ์ •๋ ฌ  : https://codechacha.com/ko/java-sort-map/

https://ponyozzang.tistory.com/404

 

์˜ˆ์‹œ

import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;

class Solution {
    public int solution(String[][] clothes) {
        int answer = 1; //๊ณฑ์…ˆ์„ ์œ„ํ•ด 1๋กœ ์„ ์–ธ
        HashMap<String, Integer> clothesMap = new HashMap<String, Integer>();
        //map ๊ตฌํ•˜๊ธฐ
        for(int i =0; i<clothes.length; i++){
        	//์˜์ƒ์ข…๋ฅ˜, ๊ฐฏ์ˆ˜
            clothesMap.put(clothes[i][1], clothesMap.getOrDefault(clothes[i][1], 0)+1);
        }
        //์กฐํ•ฉ
        Set<String> keySet = clothesMap.keySet(); //์˜์ƒ์ข…๋ฅ˜.
        
        for(String key : keySet) {
        	answer *= clothesMap.get(key)+1; 
        }
        return answer-1; //์•„๋ฌด๊ฒƒ๋„ ์•ˆ์ž…๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ ์ œ๊ฑฐ
    }
}

๋‚ ์งœ

String str = "2020-10-10 10:10:10";
DateTimeFormatter fm = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDate local_date = LocalDate.parse(str, fm);
LocalDate date1 = LocalDate.of(2022, 1, 1);
LocalDate date2 = LocalDate.of(2022, 2, 1);
int result = date1.compareTo(date2);

System.out.println(result);

 


ํŽธ๋ฆฌ

- for๋ฌธ ๋Œ๋ฉด์„œ ์š”์†Œ ์‰ฝ๊ฒŒ ๊ฐ€์ ธ์˜ค๊ธฐ 

for(int item : arr) {
            if(item % divisor == 0) {
                lst1.add(item);
            }
        }

https://hbase.tistory.com/160

 

[Java] ์ •๊ทœํ‘œํ˜„์‹ ์‚ฌ์šฉ๋ฒ• ๋ฐ ์˜ˆ์ œ - Pattern, Matcher

์ž๋ฐ”์—์„œ ์ •๊ทœํ‘œํ˜„์‹(Regular Expression)'์„ ์‚ฌ์šฉํ•ด๋ณด์ž. 1. ์ •๊ทœํ‘œํ˜„์‹(Regular Expression) ์ •๊ทœํ‘œํ˜„์‹ ํ˜น์€ ์ •๊ทœ์‹์€ ํŠน์ •ํ•œ ๊ทœ์น™์„ ๊ฐ€์ง„ ๋ฌธ์ž์—ด์˜ ์ง‘ํ•ฉ์„ ํ‘œํ˜„ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด๋‹ค. ์ •๊ทœ ํ‘œํ˜„์‹์€

hbase.tistory.com

์ž๋ฐ” ์ •๊ทœํ‘œํ˜„์‹ ์ •๋ฆฌ

 

-Greedy 

=> ์ตœ์†Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ •ํ•˜๋Š” ๊ฒฝ์šฐ : ์ •๋ ฌ ํ›„ ๋งˆ์ง€๋ง‰ ์‹œ๊ฐ„/์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ priority queue๋กœ ๋น„๊ตํ•ด์ฃผ๊ธฐ

=> ๊ฐœ์ˆ˜๋Š” ์ •ํ•ด์ ธ์žˆ๊ณ  ์ตœ์†Œ์˜ ๊ฐ’(์ฐจ์ด)์„ ์ •ํ•˜๋Š” ๊ฒฝ์šฐ : ์ฐจ์ด๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•ด์„œ ๋”ํ•ด์คŒ


์ค‘์š”ํ•œ ์˜ˆ์ œ (ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํŠœํ”Œ)

import java.util.*;

class Solution {
    public int[] solution(String s) {
        
        String newString = s.replaceAll("[\\{\\}]", "");
        String newString2 = newString.replaceAll("[,]", " ");
        String strArr[] = newString.split(",");
        
        HashMap<String, Integer> hmap = new HashMap<String, Integer>();
        
        for(int i=0; i<strArr.length; i++){
            String tempStr = strArr[i];
            hmap.put(tempStr, hmap.getOrDefault(tempStr, 0)+1);
        }
        
        
        // Map.Entry ๋ฆฌ์ŠคํŠธ ์ž‘์„ฑ
		List<Map.Entry<String, Integer>> entList = new ArrayList<Map.Entry<String, Integer>>(hmap.entrySet());

		// ๋น„๊ตํ•จ์ˆ˜ Comparator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด๋ฆผ ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ
		Collections.sort(entList, new Comparator<Map.Entry<String, Integer>>() {
			// compare๋กœ ๊ฐ’์„ ๋น„๊ต
			public int compare(Map.Entry<String, Integer> obj1, Map.Entry<String, Integer> obj2)
			{
				// ๋‚ด๋ฆผ ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ
				return obj2.getValue().compareTo(obj1.getValue());
			}
		});

        int[] answer = new int[entList.size()];
        int id = 0;
		// ๊ฒฐ๊ณผ 
		for(Map.Entry<String, Integer> entry : entList) {
			answer[id] = Integer.parseInt(entry.getKey());
            id++;
		}

        return answer;
    }
}

- replaceAll ์ •๊ทœ์‹

- HashMap ์ •๋ ฌ


์ž๋ฐ” str1.startsWith(str2)

import java.util.Arrays;

class Solution {
    public boolean solution(String[] phoneBook) {
        // 1. phoneBook์„ sortingํ•œ๋‹ค.
        Arrays.sort(phoneBook);

        // 2. 1์ค‘ Loop์„ ๋Œ๋ฉฐ ์•ž ๋ฒˆํ˜ธ๊ฐ€ ๋’ท ๋ฒˆํ˜ธ์˜ ์ ‘๋‘์–ด์ธ์ง€ ํ™•์ธํ•œ๋‹ค.
        for (int i = 0; i < phoneBook.length - 1; i++)
            if (phoneBook[i + 1].startsWith(phoneBook[i]))
                return false;
        
        // 3. ์—ฌ๊ธฐ๊นŒ์ง€ ์˜ค๋ฉด ์ ‘๋‘์–ด๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
        return true;
    }
}

Priority Queue

import java.util.*;

class Solution {
    public int solution(int[] scoville, int K) {
        
        int answer = 0;
        PriorityQueue<Integer> pq = new PriorityQueue<>();
        Queue<Integer> list = new PriorityQueue<>(Collections.reverseOrder());

        // priority queue ์ƒ์„ฑ
        for (int i : scoville) {
            pq.add(i);
        }

        while (true) {
            // ์ตœ์†Œ์น˜๋ฅผ ๋„˜์€ ๊ฒฝ์šฐ ์ข…๋ฃŒ
            if (pq.peek() >= K) break;
			
            // ๋” ์ด์ƒ ์„ž์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ -1 ํ›„ ์ข…๋ฃŒ
            if (pq.size() == 1) {
                answer = -1;
                break;
            }
            
            // 2๊ฐœ๋ฅผ ๋ฝ‘์•„ ์„ž๊ณ  ๋‹ค์‹œ ์‚ฝ์ž…
            pq.add(pq.poll() + pq.poll() * 2);
            answer++;
        }
        
        return answer;
    }
}

์‚ฌ์šฉ๋ฒ• : https://velog.io/@gillog/Java-Priority-Queue%EC%9A%B0%EC%84%A0-%EC%88%9C%EC%9C%84-%ED%81%90


์กฐํ•ฉ ์žฌ๊ท€ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„ + Map.Entry ์ตœ๋Œ€๊ฐ’ + ArrayList ์ •๋ ฌ (ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฉ”๋‰ด ๋ฆฌ๋‰ด์–ผ)

import java.util.*;
class Solution {
    
    static HashMap<String,Integer> map; 

    public static void combi(String ord, StringBuilder sb, int idx, int cnt, int cr){
       if(cnt == cr) {
           map.put(sb.toString(),map.getOrDefault(sb.toString(),0)+1);
           return;
        }
        
        for(int i = idx; i<ord.length(); i++){
            sb.append(ord.charAt(i));
            combi(ord,sb,i+1,cnt+1,cr);
            sb.delete(cnt,cnt+1);
        }
    }
    
    public ArrayList<String> solution(String[] orders, int[] course) {
        ArrayList<String> answer = new ArrayList<>();
        
        // ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋ณ€๊ฒฝ
        for(int i =0;i<orders.length;i++){
            char[] charArr = orders[i].toCharArray();
            Arrays.sort(charArr);
            orders[i] = String.valueOf(charArr);
        }
        
        for(int cor : course){
            map = new HashMap<>();
            int max = Integer.MIN_VALUE;   
            for(String order : orders){
                StringBuilder sb = new StringBuilder(); 
                if(order.length() >= cor)
                    combi(order,sb,0,0,cor);                               
            }
            
            for(Map.Entry<String,Integer> entry : map.entrySet()){
                    max = Math.max(max,entry.getValue());
                   
            }
            for(Map.Entry<String,Integer> entry : map.entrySet()){
                    if(max >=2 && entry.getValue() == max)
                        answer.add(entry.getKey());
            }
        }
        Collections.sort(answer);
        
        return answer;
    }
}

 

 

Collections ๋ฐฐ์—ด ์ •๋ ฌ : https://www.daleseo.com/java-comparable-comparator/

 

 

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));


Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine(), " ");

while(st.hasMoreTokens()){
  //nextToken()์„ ํ†ตํ•ด ๋„์–ด์“ฐ๊ธฐ(" ")๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋‚จ์€ ์ˆซ์ž๋ฅผ ์ŠคํŠธ๋ง ํ˜•ํƒœ์—์„œ int๋กœ ํ˜•๋ณ€ํ™˜ํ•˜์—ฌ arr์— ์ €์žฅ. k++๋ฅผ ์ด์šฉํ•ด ์ธ๋ฑ์Šค ์ฆ๊ฐ€
  aa = Integer.parseInt(st.nextToken());
}

 

 

 

 

  • ๋„ค์ด๋ฒ„ ๋ธ”๋Ÿฌ๊ทธ ๊ณต์œ ํ•˜๊ธฐ
  • ๋„ค์ด๋ฒ„ ๋ฐด๋“œ์— ๊ณต์œ ํ•˜๊ธฐ
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ ํ•˜๊ธฐ
  • ์นด์นด์˜ค์Šคํ† ๋ฆฌ ๊ณต์œ ํ•˜๊ธฐ