내가 쓴 코드 - 너무 느림
class Solution {
public String solution(String cipher, int code) {
String answer = "";
for(int i=1;i<=cipher.length();i++){
if((i)%(code)==0){
answer+=cipher.charAt(i-1);
}
}
return answer;
}
}
그래서!!!!
자바 문법 중 substring(from, to)를 써서 하면 훨씬 빠름!!
class Solution {
public String solution(String cipher, int code) {
String answer = "";
for (int i = code; i <= cipher.length(); i = i + code) {
answer += cipher.substring(i - 1, i);
}
return answer;
}
}
내가 쓴 코드 - 너무 느림
class Solution {
public String solution(String my_string, int num1, int num2) {
String answer = "";
char a=my_string.charAt(num1);
char b=my_string.charAt(num2);
for(int i=0;i<my_string.length();i++){
if(i==num1){
answer+=b;
}
else if(i==num2){
answer+=a;
}
else{
answer+=my_string.charAt(i);
}
}
return answer;
}
}
그래서!!!!
아래와 같이 작성하면 훨씬 빠름!!
class Solution {
public String solution(String my_string, int num1, int num2) {
String answer = "";
char[] ch = my_string.toCharArray();
ch[num1] = my_string.charAt(num2);
ch[num2] = my_string.charAt(num1);
answer = String.valueOf(ch);
return answer;
}
}
SWAP 함수를 쓴다면?
아래와 같은 코드로 쓰면 됨!!
import java.util.*;
class Solution {
public String solution(String myString, int num1, int num2) {
List<String> list = Arrays.asList(myString.split(""));
Collections.swap(list, num1, num2);
return String.join("", list);
}
}
내가 쓴 코드 - 해시맵 사용 (문법 공부)
import java.util.HashMap;
import java.util.Map;
class Solution {
public int solution(String before, String after) {
int res=0;
String[] a=before.split("");
String[] b=after.split("");
Map<String, Integer> map = new HashMap<String, Integer>();
for(String key : a) {
map.put(key, map.getOrDefault(key, 0)+1);
}
System.out.println(map);
Map<String, Integer> map1 = new HashMap<String, Integer>();
for(String key : b) {
map1.put(key, map1.getOrDefault(key, 0)+1);
}
System.out.println(map1);
for(String key:map.keySet()){
if (map.get(key) != map1.get(key)){
res=0;
return res;
}
}
res=1;
return res;
}
}
하지만!!
아래와 같이 작성하면 훨씬 빠르고 간단함!!
import java.util.Arrays;
class Solution {
public int solution(String before, String after) {
char[] a = before.toCharArray();
char[] b = after.toCharArray();
Arrays.sort(a);
Arrays.sort(b);
return new String(a).equals(new String(b)) ? 1 :0;
}
}