-
코딩인터뷰 완전분석 - 1Algorithm 2021. 2. 18. 20:32
아이패드를 가지고 나오지 않은 관계로 공책에 손코딩을 한 날이다.
배열과 문자열
1.1 중복이 없는가
package arrayandString_1; import java.util.ArrayList; public class ArrayandString_1 { ArrayList<String> merge(String[] words, String[] more) { ArrayList<String> sentence = new ArrayList<String>(); for(String w: words)sentence.add(w); for(String w: more)sentence.add(w); return sentence; } boolean isdup(String str) { for(int i=0;i<str.length()-1;i++) { if(str.charAt(i) == str.charAt(i+1)) return true; } return false; } public static void main(String[] args) { ArrayandString_1 m = new ArrayandString_1(); String str = "abcdef"; System.out.println(m.isdup(str)); } }
위의 merge 메소드는 가변 길이 배열 연습용으로 만든 메소드로, 해당 문제와는 관련이 없다.
Point. Java에서 String 객체의 인덱스 접근은 charAt(index) 메소드를 사용한다.
1.2 순열 확인
package arrayandString_2; public class Permutation { boolean isPermutation(String first, String second) { Permutation p = new Permutation(); if(first.length() == second.length()) { return p.sortString(first).equals(p.sortString(second)); } else { return false; } } String sortString(String str) { char[] arraychar = str.toCharArray(); java.util.Arrays.sort(arraychar); return new String(arraychar); } public static void main(String[] args) { Permutation p = new Permutation(); String first = "abcdef"; String second = "badffc"; System.out.println(p.isPermutation(first, second)); } }
Point. 문자열을 정렬 할 때에는, java.util.Arrays 클래스에 있는 sort 메소드를 활용하자.
String을 toCharArray() 메소드를 이용해 char형 배열로 만든 후, sort 메소드를 이용해 정렬해준다.
정렬된 char형 배열을 new String(arraychar)와 같은 형태로 다시 String으로 만든 후 반환해준다.
1.3 URL화
package arrayandString_3; public class Space { String toSpace(char[] array,int finlength) { int realindex = 0;//array의 index char[] chararray = new char[finlength]; for(int i=0;i<chararray.length;i++) {//i는 chararray의 index if(array[realindex] == ' ') { chararray[i] = '%'; chararray[i+1] = '2'; chararray[i+2] = '0'; } else { chararray[i] = array[i]; } realindex++; } return new String(chararray); } public static void main(String[] args) { Space s = new Space(); String str = "Mr John Smith "; char[] chararray = str.toCharArray(); System.out.println(s.toSpace(chararray, 13)); } }
해당 문제는 손코딩으로하지 않아서 사진이 없다. 책에서는 뒤에서부터 변환을 시작했지만, 나는 index를 2개를 써서 array에 있는 원본 코드를 하나씩 chararray로 복사해나가는 방식으로 변환했다.
'Algorithm' 카테고리의 다른 글
알고리즘 (0) 2021.09.01 알고리즘 (0) 2021.08.27 코딩 인터뷰 완전분석 - 단방향 연결리스트 (0) 2021.03.02 소프트웨어 마에스트로 1차 코딩 테스트 후기.. (0) 2021.03.02 회문과 순열관계인지 확인하기 (0) 2021.02.19