본문 바로가기

Development110

[Algorithm] Greedy Algorithm 한빛미디어의 이것이 취업을 위한 코딩테스트다 with 파이썬을 요약 정리했습니다. 그리디 알고리즘이란 - 탐욕 알고리즘, 탐욕법 - 여기서 탐욕적이라는 말은 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미한다. 그리디 알고리즘의 특징 - 매 순간 가장 좋아보이는 것을 선택 - 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않음 - 사전에 외우고 있지 않아도 풀 수 있을 가능성이 높은 문제 유형 예제문제- 거스름돈 거스름돈으로 사용할 500, 100, 50, 10원짜리 동전히 무한히 존재한다고 가정. 거슬러 줘야 할 돈이 N원일 때 거슬러 줘야 할 동전의 최소 개수를 구하라. (단, 거슬러 줘야 할 돈 N은 항상 10의 배수이다.) 소스코드 - 예제 소스 3-1.py를 자바로 작성하였음 Git.. 2021. 11. 2.
[InteliJ] SVN 커밋에러 (에러코드 E155011) 에러내용 - svn: E155011: Directory '...' is out of date 상황 - 작업중인 패키지 삭제 후 소스 커밋 원인 - 삭제가 반영된 서버의 소스 버전과 로컬의 소스 버전이 다르기 때문에 발생 해결방법 - 프로젝트 우클릭 -> Subversion -> Update Directory - 아래 이미지와 같이 HEAD revision으로 변경해준다. 2021. 11. 2.
[Algorithm] 신규 아이디 추천 문제 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 목표 - 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천 규칙 - 아이디의 길이는 3자 이상 15자 이하여야 합니다. - 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. - 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. 조건 - 네오가 설계한 7단계의 순차적인 처리 과정을 거쳐야 함 - 1단계 new_id의 .. 2021. 10. 7.
[DATABASE] INDEX 인덱스란? - 데이터베이스 분야에 있어서 테이블에 대한 동작의 속도를 높여주는 자료 구조를 일컫는다. - 책을 볼 때 특정 내용을 빨리 찾기 위해 있는 맨 뒷 부분의 찾아보기 부분이 인덱스라고 생각하면 된다. - 인덱스는 테이블에 있는 한 개 이상의 컬럼으로 만들 수 있다. - 만약 인덱스가 없다면 테이블 전체를 뒤지는 풀 스캔을 하게 된다. B-tree 인덱스 - 여러 종류의 인덱스가 있는데 가장 일반적인 인덱스가 B-tree인덱스이다. - 표준인 B-tree인덱스는 인덱스 키와 이 키에 해당하는 컬럼 값을 가진 테이블의 로우가 저장된 주소 값으로 구성된다. - 인덱스 키: 인덱스로 만들 테이블의 컬럼 값 고려사항 - 입력, 수정, 삭제를 하게 되면 인덱스를 새로 갱신하여야 하기 때문에 성능이 저하된다.. 2021. 10. 6.
[DevOps] CI / CD 서론 프로젝트 막바지가 되면서 배포할 일이 잦아지고 있는데, 현재 방식이 서버에 직접 들어가서 jar파일을 넣고, 실행해주어야 한다. 자주 반복되다보니 여간 귀찮은 일이 아닐 수 없다. 불편함을 느낀 후 자동화 등을 도입했을 때의 이해도와 편리함은 배가 될 것이다. 업무에 적용할 수 있으면 좋고, 아니면 개인 프로젝트에서 사용하면 되니 우선 공부해보려 한다. 반복되는 작업 - 신규작업/수정작업 ▶ 테스트 ▶ 배포 CI/CD란? - Continuous Integration 지속적인 통합 - Continuous Delivery 또는 Continuous Deployment 지속적인 서비스 제공 또는 지속적인 배포 도입 후 이점 - 빈번한 소스 커밋으로 인한 통합 문제 방지 - 변경된 코드로 부터 즉각적인 피드.. 2021. 10. 6.
[Algorithm] 프로그래머스- 로또의 최고 순위와 최저 순위 문제 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 코드 class Solution { public int[] solution(int[] lottos, int[] win_nums) { int zeroCnt = 0; int chkMatched = 0; for(int i : lottos) { if (i == 0) zeroCnt ++; else { for ( int j : win_nums) { if(i == j) { chkMatched++; break; } } } }.. 2021. 10. 5.
[Java] Stream 스트림이란? - 여러 자료에 대한 처리 기능을 미리 구현해 놓은 클래스 스트림 연산 - 종류: 중간 연산 / 최종 연산 - 중간 연산: 자료를 거르거나 변경하여 또 다른 자료를 내부적으로 생성 - 최종 연산: 중간 연산에서 생성된 내부 자료를 소모하며 연산을 수행 - 따라서 최종 연산은 마지막에 한 번만 호출됨 - 최종 연산이 호출되어야만 중간 연산의 결과가 만들어짐 자주 사용되는 중간 연산(filter, map) - filter( ): 조건을 넣고 그 조건에 맞는 참인 경우만 추출하는 경우에 사용 public static void main(String[] args) { int[] array = {1,2,3,4,5}; // 3 이상의 값만 출력 Arrays.stream(array).filter(i -> .. 2021. 10. 5.
[Log4j2] Log4j2- PatternLayout 목적 - Log4j2에서의 PatternLayout의 속성에 관하여 숙지 정의 - 패턴 문자열로 구성 가능한 유연한 레이아웃. (A flexible layout configurable with pattern string.) 사용법 - 각 변환 지정자는 (%) 기호로 시작하고, 뒤에 선택적 형식 지정자와 변환 문자가 옴 (Each conversion specifier starts with a percent sign (%) and is followed by optional format modifiers and a conversion character. ) 속성(기본적으로 사용되는 속성만 기록함) - p: 로깅이벤트의 우선순위를 출력하는데 사용됨 (Used to output the priority of the.. 2021. 10. 5.
[InteliJ] SVN연동 에러 (에러코드 E170013, E230001) Error - svn: E170013: Unable to connect to a repository at URL 'https://...' - svn: E230001: Server SSL certificate verification failed: certificate issued for a different hostname, issuer is not trusted 문제 - 인텔리제이에서 svn을 사용하려고 함. - 에러검색 시 svn설치경로로 가서 명령어를 실행하라는 글들이 있었는데 안됨. 해결방법 - Preferences > Version Contol > Subversion - 대화형 모드 활성화(영어버전 Enable interactive mode) - 다시 저장소에 접근하면 로그인 창이 뜸. 참고 - .. 2021. 9. 29.