프로그래머스 : 올바른 괄호예시 : ()() < 좌우 닫혔기 때문에 올바른 괄호불완전 예시 : )(())( 좌우가 열렸음 ())(() 중간 괄호가 열렸음맨처음은 String \[] array = split("");로 하나씩 행렬을 나눴을 때 정답
위와 같이 '제거한 0의 수'와 1의 갯수를 이진변환하여 나온 결과가 "1"이 될때까지 '반복한 횟수' 두값이 필요하다...String이 불변한 객체이므로(메모리소모) StringBuffer를 배운 만큼 문자열을 자주 편집하기 때문에 StringBuffer를 통해 풀어
링크연속된 자리 수의 합이 입력한 숫자와 같은 횟수를 출력하는 문제이다.이중 for문을 통해 풀 수도 있다. 최대한 반복횟수를 줄이기 위해서 주어진 숫자보다 초과를 한다면 break를 발생..1부터 시작한다면 +2+3.. 나오지 않는 조건에 많은 반복횟수가 생기기때문에
맨처음 생각했던 것은 글자 하나당 List에 넣어 b, a ,a, b, a, a 로 만들어이전 글자와 동일하다면 제거하여 b, a ,a, b, a, a -> b,b,a,a -> a, a, -> 이렇게 생각하여 문제를 풀었으나 효율성에서 탈락public int
나의 풀이 방식은 배열을 오름차순으로 정렬한 후 1,2번째 최소공배수를 구한 수를 3번째와 다시 최소공배수를 구하는 것으로 O(N)복잡도를 고려하였다.Hash Map으로 key값은 더해야되는값 Value는 더한값ex) key ; 3 / value : 12 으로 각항
1, 2번째 배열을 통해 푼다면 정확하지만 시간초과로 되지않는다.확실히 for 한번돌때마다 배열을 생성하고 연산하는 것이 효율적이지 못함.Set을 활용을 생각했으나 나은 연산 방법을 찾는 것에는 실패하였음.Map을 활용한 방법을 확인하여 활용하였음.
추측 : 시간 초과가 발생하는 부분은 배열을 내림차순 정렬을 할때 ...결국에는 라운드에서 가장 큰수들을 무적권으로 방어하고 작은수들로만 n명의 병사를 소모시켜야 된다...이 과정에서 우선순위 큐(Priority Queue) , 이분탐색이라는 자료구조와 알고리즘 풀
문제 택배기사가 배달과 수거를 할때 최소의 이동거리를 구하는 것이다.1\. 먼거리를 이동하는 와중에 중간배달지에서 작업이 가능하고2\. 택배 cap은 존재하므로 갈때 최대 올때 최대로 들고오고 내려야 한다.결국 먼 거리부터 택배를 진행해야 거리를 최소화 할 수 있다.택
자료구조 알고리즘 추천
1. ArrayList, LinkedList, Set ArrayList 실행결과 LinkedList 실행결과 > 중복이 가능? Yes : 리스트 아이템 입력/삭제가 리스트의 끝이 아니라 중간에 자주? YES :
문제이전에 활용한 스택 문제와 유사하다. ex) ' ( ' 가 무조건! 먼저 와야지 ' ) ' 가 올 수 있음! 정상적인 괄호라면 stack.isEmpty() 가 true.하나라도 비정상이면 내부에는 데이터가 남아 있음.
문제 문제 LRU (Least Recentely Used) 즉 없다면 메모리 캐시에 저장하고 사용하지 않는 데이터부터 삭제하고 캐시HIT가 발생하면 다시 가장 최근으로 Update를 해야한다. 해설
프로그래머스 문제배열의 크기순으로 정렬을 하고 대상타겟의 접두사를 subString으로 자른 후 비교,또한 중복된 숫자는 없기때문에 같은 배열길이는 검사하지 않음. 하지만 시간초과가 발생. 다른 방법을 고려..(정렬방법을 변경하며 하나의 for문으로 실행.맵에서 키나
검색을 위한 자료 구조키(key)에 대한 자료를 검색하기 위한 사전(dictionary) 개념의 자료 구조key는 유일하고 이에 대한 value를 쌍으로 저장index = h(key) : 해시 함수가 key에 대한 인덱스를 반환해줌 해당 인덱스 위치에 자료를 저장하거나