목록전체 글 (245)
말랑한 하루
[ 개요 ] 그리디 [ 학습 내용 ] 기지국을 설치하는 관점을 적재적소에 기지국을 배치하는것이 아닌, 그범위에 최대 몇개를 넣어야 할지 판단해야 했다. 현재 나의 위치(전파가 도달하지 않는 위치의 첫 시작점) ~ 기지국의 위치(해당 기지국에서 전파가 도달하는 첫 시작점) 위 범위에 최대 몇개의 기지국이 들어갈 지 판단해야 한다. [ 소스 코드 ] function solution(n, stations, w) { let answer = 0; let index = 1; let range = w*2+1; stations.forEach((station, idx) => { if (index < station-w) { answer += Math.ceil((station-w-index)/range); } index =..
[ 소스 코드 ] function solution(operations) { let deque = []; operations.forEach((oper) => { let [action, N] = oper.split(" "); if (action === "I") { deque.push(parseInt(N)); deque.sort((o1, o2) => o1 - o2); } else { if (deque.length === 0) return; N === "1" ? deque.pop() : deque.shift(); } }); return [deque.at(-1) ? deque.at(-1) : 0 , deque[0] ? deque[0] : 0]; }
[ 소스 코드 ] function solution(s) { return s.split("").sort().reverse().join(""); }
[ 소스 코드 ] function solution(s) { let answer = s.split(" ").map((str) => { return str.split("").reduce((res, word, index) => res + (index % 2 == 0 ? word.toUpperCase() : word.toLowerCase()) , "") }) return answer.join(" "); }
[ 소스 코드 ] function solution(s) { let reg = new RegExp("^[0-9]{4}$|^[0-9]{6}$"); return reg.test(s); } [ 코드 분석 ] 해당 문제에서 예외처리할 항목을 보아야한다. 1) s는 길이 1 이상, 길이 8 이하인 문자열입니다. 2) s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다. 1) 에서 숫자로만 이루어진 8개의 문자열인 경우, 정규표현식의 `[0-9]{4}`로만 처리하려 했을 때, 문자열 내 존재하는지 여부를 판단하여 `true`를 반환한다. 이 예외를 처리하기위해 입력의 시작과 끝이 해당 표현식으로 이루어져야 함을 고려해야한다. 단, 시작`^` 또는 끝`$`만을 사용하였을 경우, 전체가 아닌 부분으로..
[ 소스 코드 ] function solution(my_string) { return my_string.split("").reverse().join(""); }
[ 학습 내용 ] ※ list 내 모든 요소 합계 sum(list) ※ list 내 모든 요소 형 변환 map(type, list) [ 소스 코드 ] import sys input = sys.stdin.readline values = (input().rstrip()).split('-') value = sum(map(int, values[0].split('+'))) for x in range(1, len(values)): value -= sum(map(int, values[x].split('+')))
[ 학습 내용 ] ※ Comparator - compare Class를 생성하지 않고 비교기만 추가하고 싶을 때 class MyComparator implements Comparator { @Override public int compare(String o1, String o2) { return o1.length() == o2.length() ? o1.compareTo(o2) : o1.length() - o2.length(); } } ※ 문자열 비교 o1.compareTo(o2) [ 소스 코드 ] import java.util.*; class MyComparator implements Comparator { @Override public int compare(String o1, String o2) { r..