본문 바로가기

전체 글

(33)
[알고리즘] Two Pointers 투포인터 (Two Pointers) 두개의 포인터로 정돈되어있는 배열에서 원하는 값을 찾을 때 사용하면 좋은 알고리즘 그냥 반복문을 쓰다보면 시간 초과가 걸리는 경우가에 있는데, 투 포인터를 사용하면 메모리와 시간 효율성을 높일 수 있습니다. 코딩 테스트를 보면 시간 복잡도를 낮출 수 있는 경우에는 일부로 테스트 케이스에 n이 정말 큰 (엄청 긴 배열이나 문자열)을 사용해서 Time out을 걸리게 하는 케이스가 많다고... 우선 아래의 문제를 제가 일반적으로 풀수있는 방법으로 풀어보았고 그 밑에 투포인터 방식으로 풀이된 문제입니다. 주어진 배열에서 중복된 값을 제거한 특수한 값이 몇개인지 리턴하는 문제! countUniqueValues([1, 1, 1, 2, 1]) --> 2 countUniqueVal..
[알고리즘] Frequency Counter Pattern 강의를 들으면서 먼저 강의시작전에 풀어보는 문제로 아래의 예시와 같이 순서와 상관없이 해당 문자가 포함되어 있으면 true 하지만 여기서 빈도수는 첫번째 문자열과 동일해야함 validAnagram('', '') --> true validAnagram('cat', 'atc') --> true validAnagram('love', 'lovve') --> false 그래서 저는 우선 받아온 문자를 배열로 만들고 두 배열의 길이가 다르다면 제일 먼저 return false를 해주고, for문으로 구하기로 생각했습니다. // validAnagram('', '') true // validAnagram('cat', 'atc') true // validAnagram('love', 'lovve') false functi..
[springboot] 다국어 변경에 따른 게시물 변경 안녕하세요ㅎ_ㅎ 스프링부트에서 다국어 (한국어, 영어) 설정에 따라 영문 게시글, 혹은 한국어 게시물을 화면에 뿌려주는 방법에 대해 정리해보고자 합니다! 스프링부트, 타임리프를 사용하였습니다. WebMvcConfig에 설정한 localeResolver이며 쿠키에 저장하여 다국어를 처리할 수 있도록 설정합니다. // WebMvcConfig.java @Configuration public class WebMvcConfig implements WebMvcConfigurer { @Bean public LocaleResolver localeResolver() { CookieLocaleResolver resolver = new CookieLocaleResolver(); // 쿠키에 정보를 저장 resolver.se..
[알고리즘] 배열의 시간복잡도 *강의를 보고 정리한 노트입니다. 배열에 있는 데이터의 접근은 매우매우 빠른데 아래와 같이 각각의 역할에 따라 빅오가 달라진다. 접근 - O(1) 배열의 접근은 인덱스를 사용하여 매우매우 빠르게 접근이 가능함 입력 - 배열끝에 추가하면 O(1)이지만, 배열 앞에 추가 및 삭제를 하게 되면 배열의 모든 인덱스를 새롭게 배정해주어야 하기 때문에 O(n) 탐색 - O(n) 배열의 모든 인덱스를 거쳐서 탐색을 해야하기 때문 배열 메소드의 빅오 push / pop : O(1) - 배열의 맨끝에 추가하고 제거하는 작업은 배열의 크기와 상관이 없고 그냥 끝에 넣거나 삭제해주기만 하면 끝! shift / unshift : O(n) - 배열 시작에 추가하고 제거를 한다면 무조건! 인덱스를 재정의하게 됨 concat : ..
[알고리즘] 빅오표기법 - 1 *강의를 보고 정리한 노트입니다. 알고리즘의 복잡도를 판단하는 척도로는 시간 복잡도와 공간 복잡도 두 가지가 있는데, 빅 오 표기법은 시간 복잡도를 다룬다. 하나의 문제를 해결하기 위한 해결법은 무수히 존재하고 다양한데, 그 중에서 가장 좋은 방법으로 해결할 수 있는 하나의 방법은 무엇일까? 예를 들어보자면, 문제를 접근하는 두가지 방식의 예시가 있습니다. 첫번째는 루프, 두번째는 리스트로 문제를 해결할 수 있다고 가정해봅니다. 루프와 리스트 둘 중에서 과연 뭐가 더 좋은 선택일까? 바로 이것이 빅오표기법의 궁극적인 목표입니다. 즉, 여라가지 코드를 일반적으로 서로 비교하고 성능을 평가하는 방법. 근데, 제대로 동작하기만 하면되는데 왜 제일 좋은 해결책을 찾는걸까? 그것은 바로, 수천개, 혹은 아주 큰 ..
[vue.js] hash mode는 도대체 뭐지? Vue로 프로젝트 작업을 하다보면 hash mode라는 것을 접하게 됩니다. 여기서 단순하게 보면 hash mode : url에 #이 붙음 history mode : url에 #이 없음 하지만, 대부분의 사람들은 #이 너무나도 보기에 거슬리기 때문에 history mode를 적용시킵니다. 아니 그럼 그래서 hash mode는 도대체 무엇을 위해 있는 걸까... vue 창시자도 심심해서 만들지는 않았을거고, 다 이유가 있었을텐데... 하지만, hash mode가 생겨난 이유에 대해서는 깊게 설명된게 없고, 공식 문서에서 조차도 크게 언급하지 않고 있습니다. 그렇게 잘 설명되어져있는 외국사이트를 발견...!!! 정리를 해보자면, 프론트엔드 개발의 목적은 백엔드에 어떠한 요청 없이 스스로 view를 전환하고 ..
[linux] 리눅스 명령어 정리 안녕하세요ㅎㅎ 리눅스 명령어를 이 게시글에 쭉쭉 그때마다 정리하는 공간으로 쓰고자 합니다. pwd - print working directory 현재 작업중에있는 디렉토리 정보를 출력해줌 cd - change directory 경로이동해줌 ls - list 디렉토리 목록을 출력해줌 tail 특정파일에 계속 추가되는 모든 내용을 모니터링 할 수 있음 --> 로그 파일 종료 컨트롤 + c gz 파일 보기 --> zcat file.gz (파일 보기) zcat 은 압축을 해제하고난 후에 grep 가능 --> zgrep "apple" test.gz (압축해제없이 검색) zgrep -A20 -B20 "apple" test.gz
[프로그래머스] 자바스크립트 코테 연습 - 4 (feat.reduce함수) 안녕하세요 (*•̀ᴗ•́*)و ̑̑ 오늘도 프로그래머스에서 문제를 하나 풀어보았습니다.. 쉬운 문제부터 차근차근 풀어보는게 부담이 덜하기도 하네요ㅎㅎ! 그래서 오늘 풀어본 문제는요! [음양더하기] 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. [제한사항] absolutes의 길이는 1 이상 1,000 이하입니다. absolutes의 모든 수는 각각 1 이상 1,000 이하입니다. signs의 길이는 absolutes의 길이와 같습니다. signs[i] 가 참이면 absolutes[i] 의 실제 정..