결국 JAVA로 갈아타버린..🍂 6

강의정리- 이진트리순회(DFS) / 부분집합 구하기(DFS)

- 이진트리 순회(깊이우선탐색) public void DFS(Node root){ if(root == null) return; else{ System.out.print(root.data+ " "); // 전위순회 DFS(root.lt); System.out.print(root.data+ " "); //중위순회 DFS(root.rt); System.out.print(root.data+ " "); //후위순회 } } - 부분집합 구하기 public class Main { static int n; static int[] ch; public void DFS(int L){ if(L == n+1){ String tmp = ""; for(int i = 1; i< n ; i++){ if(ch[i] == 1) tmp +..

강의정리 - 단어뒤집기(StringBuilder)

1) 문자열 뒤집기 - StringBuilder를 이용한 reverse기능 사용 public int solution(int n, String[] str){ ArrayList answer = new ArrayList(); for(String x: str){ String tmp = new StringBuilder(x).reverse().toString(); answer.add(tmp); } return answer; } - 특정문자만 뒤집어야 할 때 study -> yduts public int solution(int n, String[] str){ ArrayList answer = new ArrayList(); for(String x: str){ char[] s = x.toCharArray(); int l..

강의 정리 - 문자찾기 / 대소문자 변환 / 문장 속 단어

1) 문자 찾기 : 문자열에서 특정 문자 찾기 - 문자열, 문자를 uppercase를 통해 대문자로 표준화 - str.toCharArray() => 문자열을 문자 하나하나로 나눠 배열로 만들어줌 * 문자열의 공백도 인덱스에 포함됨 -> 공백을 포함시키지 않으려면 'replace' 사용해 공백 제거해주고, 배열로 변환해주면 될 듯 함 import java.util.*; public class Main { public int solution(String str, char t){ int answer = 0; str = str.toUpperCase(); t = Character.toUpperCase(t); for(char x : str.toCharArray()){ } return answer; } // tip:..

백준- 행운의 문자열 자바/java

정말 어이가없는건..c++할때는 뭐가 좋은지 몰랐는데 갑자기 순열을 많이 쓰게 되면서 c++의 좋은점을 깨달았다..next permutation을 사용할 수 있는 것인데 자바에서는 그냥 구현해줘야 한다..ㅎ 그래도 뭐 직접 구현해야 실력도 늘지.. - 먼저 각 알파벳 종류와 개수를 map에 저장해주었다. -> 이건 나중에 나눠줄때 필요해서 - 그다음 모든 순열 조합을 찾아내고 -- 순열 찾는건 다른 글에 있으니 그걸 찾아보도록/ 블로그에도 많이 있다. - 찾아낸 조합은 행운의 문자열인지를 체크해준다. - check()함수 - 행운의 문자열의 개수를 센다 - count로 -마지막으로 count를 각 알파벳 개수의 팩토리얼로 나눠준다. => ex) aabc일때 a(첫번째 a)ba(두번째 a)c 와 a(두번째..

JAVA- Calendar /날짜계산/시간 계산

코딩테스트를 하다보면 날짜계산이 나오는 순간 멘붕이 되는것같다.. 파이썬처럼 데이터 타입을 신경안써도 되면 조금 더 수월하려나.. 무튼 씨쁠쁠일때도 자바일때도 날짜계산은 너무 어렵다..😂 - 두 날짜의 차이를 계산해야할때! - 초단위 date를 년도부터 시간까지했지만 날짜만 적어도 계산이 가능하다! 년도는 네글자로 yyyy형태로 적어도 된다. 저번에 코테볼때는 두글자밖에 없길래 그냥 두글자로 해본것일뿐이다.. String을 Date 타입으로 바꾼 뒤, 시간의 차이를 계산한다. 밑에처럼 하면 '초'를 단위로 두 날짜간의 차이가 계산된다. 계산 결과는 long 타입으로 받아줘야한다 - 에러사항 1) parse도 try-catch 문을 쓰지않으면 error: unreported exception ParseEx..