목록알고리즘/인프런 - Java알고리즘 입문 (65)
개발자는 기록이 답이다

2. 아나그램(해쉬) 예시 입력 1 AbaAeCe baeeACA 예시 출력 1 YES 예시 입력 2 abaCC Caaab 예시 출력 2 NO 내가 푼 풀이(Time: 157ms Memory: 27MB) 해쉬맵을 별로 안써봐서 출력해가면서 풀어야 했다. 강의를 다 듣고 나면 프로그래머스에서 해쉬맵 문제도 풀어봐야겠다. import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Main { public String solution(String a, String b) { String answer = "YES"; HashMap firstMap = new HashMap(); HashMap secondMap = new ..

1. 학급 회장(해쉬) 예시 입력 1 15 BACBACCACCBDEDE 예시 출력 1 C 강의 풀이(Time: 159ms Memory: 27MB) HashMap에 대한 이해가 필요하다. map.put(key,value) : map의 데이터 자료 생성 map.get(key) : key에 해당하는 value값을 리턴 map.getOrDefault(key, 0) : map 객체에 key가 있다면 value값을 가져오고, 없으면 0을 리턴 map.keySet() : 존재하는 key를 전부 탐색 - for each에서 사용 map.containsKey(key): 맵 객체에 해당하는 key가 존재하는지 확인 후 boolean 리턴 map.size() : 존재하는 key의 개수를 리턴 map.remove(key) :..

https://cote.inflearn.com/contest/10/problem/03-06 OnlineJudge cote.inflearn.com (위의 링크는 인프런 로그인 후, 해당 강의를 사지 않으면 접속이 되지 않습니다) 6. 최대 길이 연속부분수열 예시 입력 1 14 2 1 1 0 0 1 1 0 1 1 0 1 1 0 1 예시 출력 1 8 내가 푼 풀이(Time: 734ms Memory: 35MB) 0을 만났을때 1로 바꿔주는데, lt가 따라오면서 0이었던건지 파악하기 위해 arr배열을 복사해서 ints[]배열을 만들었다. 그런데 강의 풀이를 보니까, 따로 배열 복사를 하지 않고 1로 바꿔주지 않아도 그냥 카운팅만 해서 단순하게 풀 수 있는 문제였다. import java.util.Arrays; i..

6. 연속된 자연수의 합(수학) 예시 입력 1 15 예시 출력 1 3 강의 풀이 import java.util.Scanner; public class Main { public int solution(int n) { int answer = 0, cnt = 1; n--; while(n>0) { cnt++; n = n-cnt; if(n % cnt == 0) { // 실제 값을 확인해 보기 위한 출력문 // System.out.println(n + " " + cnt); answer ++; } } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner kb = new Scanner(System.in); int n ..