목록전체 글 (245)
말랑한 하루
[ 학습 내용 ] ※ Set Set set = new HashSet(); //type : Integer, String, pair ... etc useage : addaddAllclearcontains isEmptyremovesizetoArray others:containsAllequalshashCode iteratorremoveAllretainAllsliterator ※ IntStream .range(startIndex, endIndex) .rangeClosed(startIndex, endIndex) .forEach() .reduce() .filter(index -> fs[i] == se[i])// 범위 내 요소 중 조건에 부합하는 요소 반환 .sum()// 결과 내 요소 합계 .count()// 결과 ..
[ 소스 코드 ] class Solution { public int solution(int a, int b, int n) { int answer = 0; do { int temp = 0; answer += n/a*b; temp += n%a; n = n/a*b + temp; } while (n/a != 0); return answer; } }
[ 학습 내용 ] #사칙연산 / : 나누기 //: 몫 %: 나머지 #while #python에서 do-while구문은 존재하지 않음 #그래서 while True: ~ if ~: break 구문으로 활용할 수 있음 while condition: ~code~ if exist condition: break [ 소스 코드 ] def solution(a, b, n): answer = 0 while True: temp = 0 answer += n//a*b temp = n%a n = n//a*b+temp if n//a == 0: break return answer
[ 학습 내용 ] 이분탐색은 이론은 쉽게 이해할 수 있다. 그러나, 무엇을 기준으로 어떤 결과를 얻어야하며, 그 결과를 얻을 때 검증이 필요한지 판단하는 것이 중요하고 결과에 다다르기 위해 어떻게 변수를 조정할 지 생각해야 하는것이 까다롭다. [ 소스 코드 ] function solution(stones, k) { var left = 1, right = 200000000; const checkBridge = (mid) => { var cnt = 0; for(let i = 0; i = k) return false; } return true; } while(left > 0; check..
[ 학습 내용 ] 다중집합에서 차집합과 교집합의 개수에 관해 구할 때, 두 집합의 절대원소를 통해 알아낼 수 있다. 절대원소를 순회하며, 각 집합에서 원소의 개수를 판단하고, 두 원소 개수 값 중 작은값은 교집합, 큰값은 합집합으로 판별하여 문제를 해결한다. - Set const set = new Set([...ary1, ...ary2]); Set, Map 활용도는 무궁무진하니 틈틈히 익혀두자 [ 소스 코드 ] function solution(str1, str2) { var answer = 0; str1 = str1.toLowerCase().split(""); str2 = str2.toLowerCase().split(""); var reg = new RegExp(/[^a-z]/g, ""); const m..
[ 소스 코드 ] function solution(s) { var answer = []; var tuples = s.replace(/},/g, "-") .replace(/[{}]/g, "") .split("-") .sort((o1, o2) => o1.length - o2.length) tuples = tuples.map((tuple) => { return tuple.split(",").map((item) => { return parseInt(item, 10); }); }) tuples.forEach((tuple, index) => { for(var i=0; i a.length - b.length) .reduce((arr, v, n) => { if (n) { return arr.concat(v.filter..
[ 학습 내용 ] - LRU (Least Recently Used) 알고리즘 페이지 교체 알고리즘으로, 가장 오랫동안 참조되지 않은 페이지를 교체하는 알고리즘. [ 소스 코드 ] function solution(cacheSize, cities) { var answer = 0; var cache = []; cities.forEach((city) => { city = city.toLowerCase(); if (cache.includes(city)) { cache.splice(cache.indexOf(city), 1); cache.unshift(city); answer += 1; } else { if (cache.length == cacheSize) cache.pop(); if (cacheSize != 0) ..
[ 값 ] 1. SUM() 2. AVG() 3. MIN() 4. MAX() : 최대 값 구하기 //programmers_level_1_최대값_구하기 SELECT MAX(DATETIME) AS "시간" FROM ANIMAL_INS; 5. COUNT() 6. DISTINCT : 중복 제거하기 //programmers_level_2_중복_제거하기 SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS; [ 문자열 ] 1. LIKE : 부분 문자열 일치 검색 //programmers_level_2_이름에_el이_들어가는_동물_찾기 WHERE NAME LIKE "%el"// el로 시작하는 문자열 WHERE NAME LIKE "el%"// el로 끝나는 문자열 WHERE NAME LIKE ..