본문 바로가기

알고리즘2

LSCS 구하기 LSCS는 Largest Sum of Contiguous Subarray의 약자로, 연속된 부분배열의 합들 중 가장 큰 합을 의미합니다. 연속된 부분 배열이란 예를 들어서 전체 배열이 {1, 2, 3} 인 경우에 {1}, {1,2}, {1,2,3}, {2}, {2,3}, {3} 과 같이 인접한 원소들로만 이루어진 집합을 의미합니다. 이 배열의 LSCS는 부분배열 {1,2,3}의 원소의 합인 6이 됩니다. 원소들이 0이상의 정수라면 단순히 모든 원소를 다 더하면 LSCS가 되겠지만, 음수가 포함되는 경우는 조금 다른 결과가 나올 것입니다. 위의 문제를 만났을 때 배열의 index를 포인터 삼아 포인터를 옮겨가며 모든 부분배열 원소의 합을 각자 구한 뒤, 그 중에서 가장 큰 값을 구하는 방법을 사용했습니다... 2022. 7. 28.
countAllCharacters 문자열을 입력받아 문자열의 각 letter를 key로 갖고 letter가 등장하는 횟수를 value로 갖는 HashMap 를 return 하는 문제. (입력받은 문자열이 빈 문자열인 경우에는 return null) 예시. "apple" 을 입력받았다면 {a = 1, p = 2, l = 1, e = 1} 을 반환 나의 풀이 또 다시 완전 탐색과 double for loop으로..ㅎㅎ 그래도 나름대로 중복된 key는 갖지 않는 Map의 특성을 이용했다는 점에서, 그 동안 사용해 보지 않은 새로운 방식을 하나 이용했다는 게 성장점인 것 같다. 물론 return type 자체가 HashMap인 것도 있지만! public HashMap countAllCharacter(String str) { //TODO.. if.. 2022. 5. 18.
반응형