본문 바로가기
  • 실행력이 모든걸 결정한다
반응형

분류 전체보기580

특정 날짜에 시간을 더하기 (Java) SimpleDateFormat 클래스는 날짜 정보를 원하는 형태로 다룰 수 있게 해주는 클래스로, 대표적으로 parse(), format() 메소드를 제공한다. parse() 메소드는 지정한 형태의 Data형으로 파싱해서 반환해주고, format() 메소드는 지정한 형태의 String형으로 반환해준다. 아래 예제에서는 "2022-03-06 10:52:35.516" 문자열을 Date형으로 반환해서 Calendar의 인스턴스에 저장하고, Calendar의 MILLISECOND 단위로 2500(2.5초)을 빼주었다. 그 외에도 YEAR, MONTH, DAY_OF_MONTH, HOUR, MINUTE, SECOND 등의 단위를 사용할 수 있다. import java.text.SimpleDateFormat; imp.. 2022. 3. 6.
2022 정보처리기사 1회 필기 후기 오늘 오후 1시에 대전대학교에서 정보처리기사 1회 필기를 응시했다. 정보통신공학과 전공자의 후기를 남겨보도록 하겠다. 과목별 체감 난이도 - 1과목 : 헷갈리는 문제는 거의 없었고 기출만 잘 이해했다면 무난하게 풀 수 있었을 것이다. - 2과목 : 기출에서 가장 많이 나왔던 파트여서 무난하게 잘 넘어갔다. - 3과목 : 지금까지 풀었던 기출들을 통틀어 가장 쉬웠다. 기출과 거의 비슷한 유형들이 출제되었다. - 4과목 : 다른 기출들과 비교했을 때 평균 정도의 난이도였다. 비전공자들은 난항을 겪었을 것 같다. - 5과목 : 2020년 1차 이후로 역대급으로 어려운 난이도였다. 필자도 나름 전공자인데 생소한 개념이 많이 나왔다. 그래도 소거법으로 어떻게든 푼 것 같다. 총평 중 또는 중하 평균 점수는 합격 .. 2022. 3. 5.
[시뮬레이션] 오픈채팅장 - 2019 카카오 블라인드 채용 해결 방법 문제를 보면, 유저가 중간에 닉네임을 변경했을 경우에도 이전에 기록했던 닉네임들까지 변경된 닉네임으로 바뀐다고 한다. 즉, 유저별 마지막 닉네임이 가장 중요하다. 유저의 닉네임이 바뀌는 경우는 Enter과 Change이므로, 이 경우에만 유저의 닉네임을 업데이트 해주면 된다. 유저별 마지막 닉네임을 확정지었다면, 유저의 마지막 닉네임이 반영된 로그를 출력해주기만 하면 된다. 소스 코드 #include #include #include #include using namespace std; map m; vector log[100001]; vector space; string str, action, uid; vector solution(vector record) { vector answer; for .. 2022. 3. 5.
Spring 관련 용어 모음 Spring에 관한 문서나 책에 자주 등장할만한 용어들을 정리하고자 한다. 용어들은 계속해서 추가해나갈 것이다. 1. DI(의존성 주입) - 추상화 계층을 통해 모듈을 쉽게 교체할 수 있도록 만드는 것 2. 개방 폐쇄 원칙 - 클래스나 모듈은 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다는 원칙 - 변화가 일어나지 않고도 기능을 확장할 수 있도록 하는 것이 주 목적이다. 3. SOLID - 다음 5가지 객체지향 설계 원칙의 각 첫 글자를 따서 만든 단어이다. * SRP(The Single Responsibility Principle) : 단일 책임 원칙 * OCP(The Open Closed Principle) : 개방 폐쇄 원칙 * LSP(The Liskov Substitution Princip.. 2022. 3. 5.
[문자열] 문자열 압축 - 2020 카카오 블라인드 채용 주의할 점 이 문제를 이해할 때 놓치기 쉬운 포인트가 있는데, 문자열을 제일 앞부터 고정된 길이만큼 잘라야 하는 것이다. 즉, "ababcdcdababcdcd" 문자열을 2개 단위로 자르려면 다음과 같이 잘라야 하는 것이다. -> ab/ab/cd/cd/ab/ab/cd/cd 필자는 이 조건을 놓친 덕에 총 2문제를 풀게 되었다. 이 조건 없는게 더 압축 효율이 좋을텐데... 어쨌든, 문자열을 제일 앞부터 자르지 않아도 되는 경우에 해당하는 소스코드는 맨 아래에 첨부하였다. 해결 방법 본 문제로 넘어가서, 필자는 다음과 같은 방법으로 문제를 해결했다. 문자열을 1개 단위부터 s.length()/2개 단위까지 자른 모든 경우를 따져봐서, 압축된 각 문자열들의 최솟값을 구했다. 그리고, 문자열을 a개 단위로 자.. 2022. 3. 4.
[이분 매칭, 난이도 중] 백준 11375번, 열혈강호 이분 매칭 알고리즘이란? 이분 매칭 알고리즘은 선택하는 집단과 선택되는 집단이 있을 때, 두 집단 사이의 매칭 수가 최대가 되도록 하는 것이 목적인 알고리즘이다. 이분 매칭 알고리즘의 기본 원리 사람 A, B와 과일 X, Y, Z가 있는데, 한 사람당 하나의 과일만 먹을 수 있다고 가정하자. 사람 A는 모든 과일을 좋아해서 과일 X, Y, Z 모두를 선호하는 반면, 사람 B는 입맛이 까다로워서 과일 X만 선호한다. 초기 상태에서는 과일 X, Y, Z는 아무에게도 선택되지 않았다. 먼저, A가 선호하는 첫 번째 과일인 X를 매칭한다. 그 다음 B가 선호하는 첫 번째 과일인 X를 매칭하려고 하니 X는 A에 의해 이미 선택되어 있다. 그래서 B는 X를 선택한 A에게 이렇게 묻는다. "A님, 가능하다면 다른 과.. 2022. 3. 4.
[Spring] 상속/인터페이스를 통한 확장 1. 상속을 통한 확장 1) Template method pattern - Super class에 기본적인 로직의 흐름을 만들고, 그 기능의 일부를 추상 메소드나 protected 메소드 등으로 만들어 놓은 뒤에 sub class에서 오버라이딩해서 구현하는 패턴이다. ※ Template 메소드 : super class에서 기본적인 로직의 흐름 즉, 알고리즘 골격을 담은 메소드 - 변하지 않는 기능은 super class에 만들어두고 자주 변경되며 확장할 기능은 sub class에서 구현한다. - Hook 메소드는 super class에서 기본적인 기능을 정의해두거나 비워뒀다가 서브클래스에서 선택적으로 오버라이드할 수 있도록 만들어둔 메소드이다. 2) Factory method pattern - 구체적인 .. 2022. 3. 4.
[개발 완료] Open The Door! 웹사이트 Github 소스 코드 https://github.com/jooyeokkim/Open-The-Door-Web-Application-Public GitHub - jooyeokkim/Open-The-Door-Web-Application-Public Contribute to jooyeokkim/Open-The-Door-Web-Application-Public development by creating an account on GitHub. github.com 프로젝트 소개 프로젝트 이름 : Open The Door! 웹사이트 프로젝트 설명 : 본인이 개발한 게임인 "Open The Door!"의 공식 웹사이트이다. 개발 및 게임 정보를 확인하거나 커뮤니티에 AI 감정 분석 기반의 댓글을 남길 수 있음 기술 스.. 2022. 2. 22.
[개발중 Progress #4] Open The Door! 웹사이트 Progress #4 - Community 페이지 구현 완료 - AI 감정분석 API를 이용하여 게시글의 부정/중립/긍정의 정도를 측정하여 감정별로 3개의 게시판으로 분리 - 게시글 쓰기, 편집, 삭제 기능 - AWS EC2에 4차 배포 완료 AWS EC2 배포 링크(Community 페이지) 현재까지의 개발 현황을 직접 조회 가능 Progress가 날 때마다 새로운 버전으로 배포할 계획 http://ec2-54-180-152-253.ap-northeast-2.compute.amazonaws.com/community/forum/neutral ※ AWS 서버 비용의 이유로 웹사이트는 올해 말까지 제공됩니다. ※ 채용 심사 등의 이유로 해당 프로젝트의 참고가 필요한 경우에는 서버를 일시적으로 오픈합니다. A.. 2022. 2. 19.