분류 전체보기 291

[프로그래머스] 달리기 경주

문제 생각2차원 배열 간단 swap 문제라고 생각했지만 경기도 오산이었다.시간초과가 나며 fail..코드실패했던 코드를 첨부한다.public class Main { public static void main(String[] args) { System.out.println(solution( new String[]{"mumu", "soe", "poe", "kai", "mine"} , new String[]{"kai", "kai", "mine", "mine"}); } public static String[] solution(String[] players, String[] callings) { String[] answ..

Dev/Algorithm 2024.05.18

[프로그래머스] 데이터 분석

문제https://school.programmers.co.kr/learn/courses/30/lessons/250121 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 생각나는 클래스를 활용했다. compare 를 이용했고,, 장렬히전사했다.sort 는 제대로 이해하고 쓴 것이 아니었다. 그냥 정렬이니까 쓴 것이지..오답 코드를 보며 반성하기 위해 기록을 남긴다.import java.time.LocalDate;import java.time.format.DateTimeFormatter;import java.util.*;class Solution { publ..

Dev/Algorithm 2024.05.18

[프로그래머스] 이웃한 칸

문제https://school.programmers.co.kr/learn/courses/30/lessons/250125?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr생각BFS 알고리즘의 기초라고 생각했다.구현 방향이 그대로 문제에 제시되어있어서 어렵지 않게 풀 수 있었다.코드public class Main { public static void main(String[] args) { System.out.println(solution(new String[][]{{"blue", "red", "orange", "red"} ..

Dev/Algorithm 2024.05.18

[프로그래머스] 개인정보 수집 유효기간

문제https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 생각 1. terms를 맵으로 변환한다.  2. privacies 를 순회하며 해당 일자의 파기일자를 구한다.  3. 파괴해야한다면 큐에 넣기코드힌트를 좀 봤다.28일로 고정되어있는게 힌트고 자칫 함정에 빠질 수 있는 문제였다. (이미 함정에 빠졌었다.)년을 먼저 구한다. -> 더해서 12월이 되는경우 년도를 더하면 안된다.월을 구할 때 -1 해야 한다 등 어처구니 없는 행위들을 생각하느라 시간..

Dev/Algorithm 2024.05.17

[프로그래머스] 가장 많이 받은 선물

문제https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr생각1. 주고받은거 배열 인덱스가 있으니,, 이차원 배열을 만들어 누가 누구한테 얼만큼 줬는지 기록하기 2. 순차 배열을 순회하며 서로 선물을 받았는가? 안받았는가 체크 2.1 받았다면 이차원배열 더 높은 사람이 결과 ++  2.2 주고 받은적 없거나, 정확히 같은 수로 선물 주고받았을 경우 2.2.1 선물지수로 판단하기  - 가로 합 : 준 선물, 세로 합 : 받은 선물 = 가로합 - 세로 합 ..

Dev/Algorithm 2024.05.17

[프로그래머스] 붕대 감기

문제https://school.programmers.co.kr/learn/courses/30/lessons/250137 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr생각마지막 공격 받은 시점까지 순회하면서공격을 안받았다면 : 연속 성공 시간 증가, 체력 증가, 최대 체력 관리,공격 받았다면 : 연속 성공 시간 초기화, 체력 감소, 공격 idx 증가, 죽음 관리더 고려할 생각연속 성공 최대 시 다시 0 으로가는걸 고려 못함.예제 코드를 더 잘 보자.코드public class Main { public static void main(String[] args)..

Dev/Algorithm 2024.05.17

무조건 합격하는 암기의 기술 책 서평

평소에 교보문고 판교점을 자주 방문하곤 한다. 서점을 둘러보다 이 책을 발견하고, 정처기 필기 시험을 준비하고 있었던 나에게 변호사 시험 공부법에 대한 궁금증이 생겨 구매하게 되었다. 해당 책은 저자가 자신의 공부법 뿐 아니라 뇌과학 이론을 통해 암기를 확실하게 하는 방법을 설명하고 있다. 암기에 필요한 단계(인지 > 이해 > 암기), 여섯 가지 암기 방법, 재현, 목적 등 자신만의 암기법에 대한 내용을 다루고 있다. 책을 읽기 전 나는 색칠공부가 암기의 최선이라고 생각했다. 하지만 조직화, 이미지화, 정교화, 맥락화, 변환, 시연 등을 통해 구조적으로 문맥을 파악하고 이해한 후에 암기하는 것이 최고의 암기법임을 알게 되었다. 특히 책을 읽으면서도 책의 내용이 내가 언제든지 꺼내어 쓸 수 있게 명쾌하게 ..

일상/책 후기 2023.09.05

[WEB] 로그인 클라이언트 IP 를 정확하게 알기 (XFF)

문제 인식 기본적으로 HttpServletRequest 를 이용하여 객체 내 함수로 클라이언트 IP를 가져올 수 있다. 기본 클라이언트 IP 를 가져오는 방법은 아래와 같다. import javax.servlet.http.HttpServletRequest; request.getRemoteAddr(); 하지만 이 코드를 실 운영에서 이용할 경우 문제가 있다. 대부분의 회사에서는 보안 관련 방화벽이나 클라우드로 운영하는 경우가 많은데, 이 경우 클라이언트의 원 IP주소를 가져올 수 없다. 클라이언트가 요청을 하면 Web Server에서 프록시나 로드 밸런서를 통해 WAS에 요청하기 때문에 프록시나 로드 밸런서의 IP 주소를 반환하게 된다. 그래서 원 IP를 못가져오는 현상이 발생한다. 해결 아래와 같이 샘플..

Dev 2023.09.01

정보처리기사 필기 합격 수기 - 전공자, 직장인 학습법

합격 후기 및 공부법 정보처리기사 필기시험에 합격했습니다👏👏 가채점으로 나오긴 했지만 안정권이기에 합격 포스팅을 작성하게 되었습니다. 직장인으로서 업무와 병행하며 공부하였고, 공부하며 제가 느낀 점을 몇 가지 공유해보고자 합니다. *참고 : 필기 합격 기준은 파트별 40점 이상, 과목 평균 60점 이상 두 가지를 만족하면 합격입니다* 제가 사용한 공부방법 우선 저는 직장인이고, 전공자임을 알려드립니다. (IT 직무 현업 근무중) 책은 가장 유명하다고 하는 이기적으로 공부했습니다. https://www.yes24.com/Product/Goods/113794518 2023 이기적 정보처리기사 필기 절대족보 - YES24 본 도서는 정보처리기사기사 필기시험을 준비하는 분들이 효과적으로 시험에 대비할 수 있도록..

일상 2023.07.16

시간 복잡도에 대하여

시간 복잡도란? 빅-오 표기법 최악의 경우 걸리는 시간 시간 복잡도 그래프 이진탐색 O(logN) 선형탐색 O(N) 정렬 O(N logN) 조합 O(N^2) 순열 O(N!) 입력 데이터 개수별 사용 가능한 시간 복잡도 알고리즘 N 값에 따라 알고리즘 적용 시 최대 1억번이 안넘어야 한다. 1억이 넘는다 ? → 빨리 다른 알고리즘을 찾아봐야한다. 잘못된 문제풀이 문제 확인 → 풀이 고안 & 작성→ 제출 → 완료 올바른 물제풀이 문제 확인 → 풀이 고안 → 효율성 체크 → 풀이 작성 → 제출 → 완료문제풀이 방법론 시간 복잡도 계산하기 어림짐작하기 >> 반복문의 횟수를 계산해보자. 시간 복잡도를 줄이는 방법 정렬된 배열 arr에서 특정 원소의 위치를 찾을 때 전체 순회O(N) → 이진탐색 O(logN) 배열..

알고리즘 2023.07.10