[코딩테스트] 프로그래머스 데브매칭 후기 포스팅 썸네일 이미지

리뷰 & 회고

[코딩테스트] 프로그래머스 데브매칭 후기

프로그래머스 웹 백엔드 데브매칭 코딩테스트 후기 2022 Dev-Matching: 웹 백엔드 개발자(하반기)-1 career.programmers.co.kr 왜 봤나요 늘 본인의 알고리즘적인 사고나 구현능력이 형편없다고 생각하고 있었다. 몇 달간 알고리즘 지식과 구현 능력이 뛰어나신 한 분과 주 2회 알고리즘 스터디를 진행했다. 스터디 시간동안 서로 피드백을 받고 푼 문제에 대해 토론하고 대화를 나누는 시간을 항상 가졌다. 참고로 이력서는 공백으로 냈다. 쓸 것도 없다 ㅠㅠ 스터디 중간 결산 깃허브 리포지토리 파서 난이도, 걸린시간, 풀이 여부 등을 측정해가며 프로그래머스 문제들 위주로 풀었다. 주로 레벨2와 레벨3을 풀고 레벨1은 자바스크립트로 풀었다. 시험 결과 일단 붙긴했는데 한 문제 테스트 케이스..

2022.10.05 게시됨

[프로그래머스] 빛의 경로 사이클 (java) 포스팅 썸네일 이미지

알고리즘 & 자료구조/프로그래머스

[프로그래머스] 빛의 경로 사이클 (java)

프로그래머스 lv2 빛의 경로 사이클 자바 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 요약 2차원 배열 느낌으로 칸이 주어지고 각 칸마다 격자가 있다. 격자에는 빛이 동서남북에서 들어올 수 있다. 격자는 빛을 직진, 좌회전, 우회전 시킬 수 있다. 배열에 있는 모든 격자들에 대한 사이클 수를 구해라 나의 풀이 존재하는 모든 격자들에 대해 시작점으로 설정하고 해당 격자로부터 발생한 사이클을 구할 것이다. 하나의 격자에 대해 사이클을 구할 때 빛의 출처 4가지를 모두 활용해 탐색하여 사이클을 구한다.(동,서,남,북) 예를 들어 좌표 (1,1) ..

2022.10.01 게시됨

[프로그래머스] 스킬트리 (java) 포스팅 썸네일 이미지

알고리즘 & 자료구조/프로그래머스

[프로그래머스] 스킬트리 (java)

프로그래머스 level2 - 스킬트리 자바 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 요약 스킬을 한 시점에 하나 배울 수 있다. 연계 스킬들 정보가 주어지는데 연계 스킬들은 순서대로만 배울 수 있다. 연계 스킬이 아닌 스킬들은 언제든지 배울 수 있다. 연계 스킬 정보가 "ABC" 면 'C' 를 배우기 위해서는 'A , B' 를 배웠어야만 하는 이런 상태를 만족시켜서 스킬을 배웠는지 여부를 묻고 있다. 문제 풀이 사용자 스킬 스테이터스 저장소가 있다고 생각하고 저장소에 선행 스킬 정보가 있을 경우에만 다음 스킬을 배울 수 있다고 보면 될 것..

2022.08.24 게시됨

[프로그래머스] 파일명 정렬 (java) 포스팅 썸네일 이미지

알고리즘 & 자료구조/프로그래머스

[프로그래머스] 파일명 정렬 (java)

프로그래머스 level2 - 파일명 정렬 자바 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 요약 파일 문자열 배열 주는데 파일은 영문자와 '.', 공백, '-' 로 구성되는 HEAD 영역과 5자리 이하 숫자로 구성되는 NUMBER 영역, 이외의 부분인 TAIL 영역으로 나눌 수 있다. HEAD -> NUMBER 순서로 오름차순으로 정렬된 파일 목록을 반환해라. 단 HEAD는 대소문자 구별이 없고 NUMBER는 절대적인 수치 기준이다.(00123 == 123) 즉 HEAD 먼저 사전순으로 정렬하고 같으면 숫자 작은 것 부터 정렬해서 반환하라는 ..

2022.08.15 게시됨

카테고리 없음

[java] volatile

몇 번 봤었지만 몰라도 될거라고 생각했던 자바 volatile 키워드에 대해 간단하게 공부하고 기록해보았다. volatile 변수 선언 시 사용하는 키워드 중 하나로 volatile 키워드를 사용하면 변수의 값이 항상 메모리에 쓰여져 있음을 보장할 수 있다. 메모리에 쓰인다니 java에서 일반적으로 변수는 컴파일러나 CPU최적화를 위해 CPU 캐시에 저장된다. 이 때 멀티 스레드 환경에서 다른 스레드가 변수를 변경하면 CPU캐시에 저장된 값과 메모리에 저장된 값이 달라지는 메모리 일관성 문제가 발생할 수 있다. volatile 키워드를 사용하면 이러한 문제를 해결할 수 있다. volatile 변수는 항상 메모리에 저장되며 다른 스레드에서 해당 변수를 읽을 때마다 메모리에서 값을 읽어오기 때문에 변수의 값..

2022.08.12 게시됨

[프로그래머스] 파괴되지 않은 건물(java) 포스팅 썸네일 이미지

알고리즘 & 자료구조/프로그래머스

[프로그래머스] 파괴되지 않은 건물(java)

프로그래머스 level3 - 파괴되지 않은 건물 자바 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 3줄 요약 숫자가 들어있는 N x M 의 행렬이 주어진다. (board) (최대 1000행 1000열) 숫자 상태를 증감시킬 수 있는 특정 크기의 직사각형 정보가 주어진다 (skill).(25만개 이하) [ [증감 여부] , [x시작 좌표], [y시작 좌표], [x 종료 좌표], [y 종료 좌표], [상태 변경 수치] ] skill 다 적용하고 난 뒤 board 에서 0보다 큰 값의 개수를 구하라 나의 풀이 완전탐색 완전탐색으로 풀면 매우 쉬운 ..

2022.07.18 게시됨

Api 캐싱 포스팅 썸네일 이미지

Spring

Api 캐싱

캐시(Cache) 한 번 처리한 데이터를 임시로 저장소에 저장하는 것을 말한다. 임시로 데이터를 저장해두고 같은 요청이 왔을 때 해당 저장소에서 바로 읽어와 응답을 해주어 성능과 응답속도를 향상시켜줄 수 있는 기술이다. Api 캐싱 Api를 캐싱한다는게 어떤 느낌일지 아주 쉬운 예시를 통해서 알아보았다. 알고리즘 연습 때문에 요즘 매일 들어가는 프로그래머스 메인페이지이다. 이 페이지 구성을 보면 오늘의 연습문제 목록4개가 있고 신규 오픈 코스 목록이 여러개 나타난다. 이 목록들은 분명 데이터베이스 같은 곳에 어떤 형태로 데이터가 저장되어있을 것이고 클라이언트 요청이 발생했을 때 서버에서 통신하여 그것들을 조회해오고 자바스크립트 같은 클라이언트 사이드에서 페이지를 구성하기 위해 적절하게 사용되었을 것이다...

2022.07.14 게시됨

[SpringBoot] Spring Data Redis 를 사용해보자 포스팅 썸네일 이미지

Spring

[SpringBoot] Spring Data Redis 를 사용해보자

SpringBoot 에서 Redis를 사용해보자 Redis 란? Key-Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈소스 기반의 NoSQL 인-메모리 에서 데이터를 처리하기 때문에 매우 빠르고 가볍다. 언제 왜 쓸까? 캐싱 관계형 DB로의 I/O 가 잦을 때 발생하는 부하를 캐싱 처리하여 해결할 수 있다. API 캐싱으로 반복적인 응답에 대한 불필요한 반복적인 통신을 줄일 수 있다. TTL 데이터 관리 사용자 인증 정보 같은 만료가 있는 데이터들을 관리하는 저장소로 활용할 수 있다. Key-Value 구조이기 때문에 대량의 데이터나, 잦은 삽입과 조회 발생 상황에서도 RDB에 비해 아주 빠르다. 요약하면 Key-Value 형식의 단순하면서도 활용이 잦은 데이터 처리나 캐싱에 사용된다고 할..

2022.07.13 게시됨