[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);
- ์์ ํฌํจ
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);
}
}
์๋ฐ ์ ๊ทํํ์ ์ ๋ฆฌ
-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());
}
'๐ป Coding Problems Solving > Hack' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA] ์ ๊ท์์ด๋ ์ถ์ฒ์ผ๋ก ์์๋ณด๋ regex (0) | 2022.10.14 |
---|---|
[JAVA] ๋คํธ๊ฒ์์ ํตํด ์์๋ณด๋ char ๋ฌธ์/์ซ์ ํ์ธ (0) | 2022.10.14 |
[JAVA] 2์ง์, 8์ง์, 16์ง์ + ์ฑ์๋ฃ๊ธฐ! (0) | 2022.10.13 |
[JAVA] ์์ ์ํธ (0) | 2022.10.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] LV.1 ์ ๋ฆฌ (0) | 2022.03.21 |
์ต๊ทผ๋๊ธ