본문 바로가기

분류 전체보기

(107)
[Programmers] 위클리 챌린지 4 직업군 추천하기 안녕하세요. 이번 포스팅에서는 프로그래머스 위클리 챌린지 4 직업군 추천하기 문제를 풀어보겠습니다. https://programmers.co.kr/learn/courses/30/lessons/84325 코딩테스트 연습 - 4주차 개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부 programmers.co.kr 위 링크에서 한번 도전해보시고 오시면 좋을 것 같습니다. 일단 이 문제는 문자열 + 구현 문제입니다. 큰 고민 없이 문제의 요구사항을 코드로 적어주시면 됩니다. 저의 경우는 우선 처음 table을 각각 SI, A, B, C, D, E ... ... GAME, A,..
[BeakJoon 2042] 구간 합 구하기 안녕하세요. 이번 포스팅에서는 BeakJoon 2042 구간 합 구하기 문제를 풀어보도록 하겠습니다. 문제는 https://www.acmicpc.net/problem/2042 2042번: 구간 합 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄 www.acmicpc.net 위 링크에서 확인하실 수 있습니다. 우선 이 문제는 구간 합 구하기 문제이긴 한데, 동적으로 계속 배열 값이 변경되기 때문에 이를 일일이 변경할 수가 없습니다. https://chanho0912.tistory.com/29?categ..
[BeakJoon 17623] 괄호 안녕하세요. 이번 포스팅에서는 백준 17623 괄호 문제를 풀어보도록 하겠습니다. 문제는 https://www.acmicpc.net/problem/17623 17623번: 괄호 6개의 문자 ‘(’, ‘)’, ‘{’, ‘}’, ‘[’, ‘]’ 로 이루어진 올바른 괄호 문자열 W에 대하여 정수의 ‘괄호값’을 지정하는 함수 val(W)가 정의되어 있다. 먼저 올바른 괄호 문자열부터 정의해 www.acmicpc.net 위 링크에서 확인하실 수 있습니다. 이 문제를 dynamic programming으로 접근해서 해결하였는데, dmap값을 기준으로 dp[n] -> val(x)=n인 x 중 최솟값으로 갱신하였습니다. 조금 더 풀어서 점화식으로 설명하자면, dp[1] = "()" dp[2] = "{}" dp[3] =..
[Programmers] 위클리 챌린지 3주차 - 퍼즐 조각 채우기 안녕하세요. 이번 포스팅에서는 프로그래머스 위클리 챌린지 3주 차 퍼즐 조각 채우기 문제를 풀어보도록 하겠습니다. https://programmers.co.kr/learn/courses/30/lessons/84021 코딩테스트 연습 - 3주차 [[1,1,0,0,1,0],[0,0,1,0,1,0],[0,1,1,0,0,1],[1,1,0,1,1,1],[1,0,0,0,1,0],[0,1,1,1,0,0]] [[1,0,0,1,1,0],[1,0,1,0,1,0],[0,1,1,0,1,1],[0,0,1,0,0,0],[1,1,0,1,1,0],[0,1,0,0,0,0]] 14 [[0,0,0],[1,1,0],[1,1,1]] [[1,1,1],[1,0,0],[0,0,0]] 0 programmers.co.kr 해당 문제는 위 링크에서 도..
[BeakJoon 2618] 경찰차 안녕하세요. 이번 포스팅에서는 백준 2618번 경찰차 문제를 풀어보도록 하겠습니다. 해당 문제는 https://www.acmicpc.net/problem/2618 2618번: 경찰차 첫째 줄에는 동서방향 도로의 개수를 나타내는 정수 N(5 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 처리해야 하는 사건의 개수를 나타내는 정수 W(1 ≤ W ≤ 1,000)가 주어진다. 셋째 줄부터 (W+2)번째 줄 www.acmicpc.net 위 링크에서 확인하실 수 있습니다. 우선 이 문제는 굉장히 어려운 문제입니다. 그 이유는 문제의 제한입니다. 보통 이런 문제는 int go(int orderIdx, int firstCar, int secondCar) { if(orderIdx == w) return 0; int& ..
[BeakJoon 16235] 나무 재테크 안녕하세요. 이번 포스팅에서는 백준 16235번 나무 재테크 문제를 풀어보겠습니다. https://www.acmicpc.net/problem/16235 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 www.acmicpc.net 해당 문제는 위 링크에서 확인하실 수 있습니다. 우선 이 문제를 풀기 위해 별도의 알고리즘을 많이 고민하실 필요는 없습니다. 해당 문제를 시뮬레이션으로 구현하시면 되는데, 문제는 이 문제의 제한이 빡빡합니다. 시간제한이 0.3초라서, 매번 sort를 하기 어렵습니다. sort를 하는 이유는 어린 나..
[Database] PostgreSql이란? PostgreSql 설치 안녕하세요. 이번 포스팅에서는 간단히 PostgreSql이란 무엇이며 Windows 기준 PostgreSql 설치에 대해 알아보겠습니다. 1. PostgreSql 가장 유명한 오픈 소스 데이터베이스는 Mysql일 것입니다. 백엔드를 개발하는 사람이라면 한 번은 사용해 보았을 것이고, Sql진영을 떠올리면 가장 먼저 떠오르는 데이터베이스 소프트웨어일 것입니다. 하지만 PostgreSql은 실제 기업에서 Mysql만큼 많이 사용되고 있습니다. 이 둘을 고민하시는 분이라면, Rdbms를 사용할 것인데, 어느 데이터베이스 소프트웨어가 더 적합하냐를 고민하실 수 있습니다. Rdbms란 결국 데이터를 테이블의 형태로 저장하고 관리한다는 뜻입니다. PostgreSql은 객체의 형태로 관계형 데이터베이스를 관리합니다...
[Spring/SpringBoot] Spring Security - Remember Me 안녕하세요. 이번 포스팅에서는 Spring의 Remember-me 즉 로그인 기억하기 기능에 대해 살펴보겠습니다. Session 보통 일반적인 웹 서비스에서, Client가 로그인을 하게 되면 세션 Id가 서버로부터 부여됩니다. 이는 이 사용자에 대한 인증이며, 서버에서 따로 관리하며 이 인증정보로 서버의 리소스들을 접근할 수 있게 됩니다. 하지만 당연하게도 이 세션 Id는 취약합니다. Client가 지워버릴 수도 있고, Server가 꺼졌다가 재시동되면 당연히 Client들의 세션 Id를 보관하던 저장소도 사라지게 됩니다. 이렇게 되면 로그인 정보가 사라지게 됩니다. Spring tomcat은 기본적으로 session timeout을 30분 정도로 가지고 있습니다. 이 말은 로그인을 해도 30분이 지나..