본문 바로가기

알고리즘 문제풀이 입문: 코딩테스트 대비51

Hash 개념 Hash 란 Key : Value 의 형태를 가진 자료구조 전화번호부와 같다고 생각하면 쉬움. 찾고자 하는 이름 = Key 전화번호 = Value Hash는 모든 데이터타입으로 접근 가능하다. HashMap map = new HashMap(); map.put('A', 3); => map의 A번째 인덱스에 3이라고 입력하는 것과 같은 동작이라고 생각하면 됨. map.get("A") => key의 value 읽어오기 (A라는 key가 존재한다는 가정하에 동작. 없으면 에러) map.getOrDefault("A",false) => A라는 Key가 있다면 A의 Value를 반환, 없다면 false를 반환 어떤 문제에서 Hash를 써야할까?? => String을 기반으로 정보를 기록하고 관리해야될 때! (단순 배.. 2024. 4. 2.
가장 짧은 문자 거리 문제 이해 주어진 문자열 s를 돌며 특정 문자 t와의 최소 거리를 출력하는 문제이다. 이 문제의 포인트는 여러 번의 문자 t를 마주할 수 있는데, 더 짧은 거리를 출력해야하는 것에 있다. 문제 해결 먼저 특정 문자 t를 구분하기 위해 split을 사용해 공백을 기준으로 배열에 넣어준다. Scanner in = new Scanner(System.in); String input = in.nextLine(); String[] words = input.split(" "); words 배열의 0번째 인덱스가 문자열 s, 1번째 인덱스의 0번째 추출 문자가 특정 문자 t를 의미하므로 각각을 변수에 넣어준다. String str = words[0]; char standardCh = words[1].charAt(0);.. 2024. 4. 2.
특정 문자 뒤집기 문제 이해 특수 문자는 그 자리에 고정시키고, 그 외의 문자들만 거꾸로 배치해서 출력하는 문제이다. 문제 해결 나는 이 문제를 Stack으로 접근했다. Stack은 나중에 들어간 것이 먼저 나오는 LIFO 구조로 거꾸로 출력하는 것에 적합하다고 생각했다. 특수문자는 그 자리에 고정해야하므로 Stack에는 특수문자를 제외한 것들만 push 해주어야 한다. Stack specificCh = new Stack(); for (char word : s.toCharArray()) { //특수 문자 제외하고 스택에 push if((word >= 'A' && word = 'a' && word = '0' && word = 'A' && word = 'a' && word = '0' && word = 'A' && word =.. 2024. 4. 2.
반응형