분류 전체보기

    [Codility] Algorithmic skills. FirstUnique

    https://app.codility.com/programmers/trainings/4/first_unique/ A non-empty array A consisting of N integers is given. The unique number is the number that occurs exactly once in array A. For example, the following array A: A[0] = 4 A[1] = 10 A[2] = 5 A[3] = 4 A[4] = 2 A[5] = 10 contains two unique numbers (5 and 2). You should find the first unique number in A. In other words, find the unique nu..

    [프로그래머스] 완전탐색. 수포자

    https://programmers.co.kr/learn/courses/30/lessons/42840 문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 ..

    [Hackerrank] Strings. Java String Reverse

    https://www.hackerrank.com/challenges/java-string-reverse/problem A palindrome is a word, phrase, number, or other sequence of characters which reads the same backward or forward. Given a string A, print Yes if it is a palindrome, print No otherwise. Constraints A will consist at most 50 lower case english letters. Sample Input madam Sample Output Yes 쉬운 문제입니다. 문자열이 palindrome(거꾸로 읽어도 동일한 문자열)일 ..

    MongoDB를 활용하여 Repository 구현

    모든 소스 코드는 https://github.com/lkimilhol/matchingProject 에서 확인 가능합니다. 안녕하세요. 저번에 MongoDB(이하 몽고) 설치하였고, 계속해서 간단하게 데이터가 들어가는지 정도 확인을 했었는데요. 이번에는 기획 단계를 하나 추가해 볼까 해요. 바로 주문 히스토리를 몽고를 사용하여 쌓도록 하는 것입니다. 다음과 같은 생각으로 이런 기획을 결정하였어요. NOSQL에서 업데이트가 빈번하지 말아야 한다. 히스토리 기록은 계속해서 데이터를 쌓는다. 히스토리 기록을 통해 데이터를 조회하고 이를 가공해서 추후에 지표를 추출 할 수 있다. 이 때 몽고디비가 적절할 것이라고 판단했다. 몽고는 확장에 용이하기에 서비스의 트래픽이 증가하면 이에 대한 관리가 쉬울 것. 위의 내용..

    [프로그래머스] 정렬. H-Index

    https://programmers.co.kr/learn/courses/30/lessons/42747#fn1 문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다.어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다.어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 제한사항 과학자가 발표한 논문의 수는 1편 이상 1,000편..

    [프로그래머스] 탐욕법(Greedy). 체육복

    https://programmers.co.kr/learn/courses/30/lessons/42862 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어..

    [프로그래머스] 해시. 완주하지 못한 선수

    https://programmers.co.kr/learn/courses/30/lessons/42576 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 - 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. - completion의 길이는 participant의 길이보다 1 작습니다. - 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.참가자 중에는 동명이인..

    Java의 Call by value, Call by reference

    안녕하세요. 정리 된 글이 많지만 오늘 call by value, call by reference에 대해서 다시한번 차근차근 알아보려고 합니다! (워낙 헷갈려서요) 테스트케이스 하나를 작성해서 실제로 값이 어떻게 들어있는지 확인을 해보도록 하겠습니다. Java 소스코드는 https://github.com/lkimilhol/tistoryblog 에서 확인 가능합니다. 1. Call by Value 개념을 정리해 보고 넘어가보도록 하죠. Call by Value란 무엇일까요? 직역하면 '값에 의한 호출' 이라고 하는데, 도통 무슨 소리인지 알 수가 없습니다. 값에 의한 호출은 메서도 인자로 값을 넘길 때 값을 '복사' 해서 넘기게 되는데요. 이 때문에 원본의 값은 변하지 않습니다. 다음 예시를 좀 보려고 하..

    Spring-data-mongodb + docker 사용해보기

    안녕하세요. 오늘은 토이프로젝트에 몽고 디비(이하 몽고) 설정을 추가해 보려고 합니다. 실무에서 몽고를 사용한 적은 있었는데요. 뭔가 깊게 사용해보지 않았다는 생각이 많았었어요! 이번 기회로 프로젝트에 몽고 의존성을 추가해보고 기획 내용을 추가하여 몽고를 사용 해보도록 하겠습니다. 모든 소스 코드는 https://github.com/lkimilhol/matchingProject 에서 확인 가능 합니다! 1. 도커에 몽고 설치 일단 저는 도커를 이용하려고 해요. docker를 pull 받도록 해보겠습니다. docker pull arm64v8/mongo 잘 추가가 되었네요. 이제 아래 명령어를 사용하여 몽고를 띄워놓겠습니다. docker run -d -p 27017:27017 --name mongo 3941..

    간단한 Spring AOP 개념과 적용

    안녕하세요. 이번에는 AOP를 적용해볼까 합니다. AOP 공부를 하면서 용어들이 헷갈리기에 정리 할 시간을 가져보려고 하는데요. 한번 천천히 알아보도록 하겠습니다. 모든 코드는 https://github.com/lkimilhol/tistoryblog에서 확인 가능합니다. 1. AOP란? AOP의 개념은 많은 분들이 아실거라 생각해요. AOP란 Aspect Oriented Programing의 약자로써 관점지향 프로그래밍이라고 불립니다. 그렇다면 관점지향 프로그래밍이란 무엇일까요? 제가 생각하는 관점지향 프로그래밍이란 공통의 관심사를 묶어놓는 프로그래밍이라고 생각하는데요.즉, 주요 기능과 부가 기능이 있을 때 공통 되는 부가기능을 하나의 처리로 묶고 주요 기능의 소스코드와 분리를 시키는 것이라고 생각해요...