https://school.programmers.co.kr/learn/courses/30/lessons/42746?language=java 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 ..
전체 글
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbamrSe%2FbtsCU18PJ7m%2F4Vds9aSDAew5885n1BAKKk%2Fimg.png)
다 모르겠고, 가장 이상적인 아키텍처만 보고 싶은 사람은 현실적인 소규모 아키텍처 섹션을 보면 된다. 퍼블릭 클라우드를 사용할 때 영어로 하든 한국어로 하든 기능 이해하기도 어렵고 가이드가 복잡하더라도 AWS 사용하는데는 여러가지가 이유가 있다. 많은 회사가 AWS를 사용하고 있어서 경험싶은 것도 있지만, 학생으로서 가격이 큰 이유였다. AWS에는 수 많은 서비스들이 존재하고 완벽한 아키텍처를 구성하기 위해 많은 기능들을 추가할 수 있다. 하지만 의외로 일부 서비스를 제외하고는 합리적인 가격이거나 일정 범위 내에서 무료인 경우가 많다. NCP 아키텍처 NCP는 한국 클라우드이기도 하고 후발주자라 그런지 문서화가 굉장히 잘 되어있다. 가끔 AWS의 한국 도큐먼트를 보면 한국어를 읽고 있는데도 이해가 안되고..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsVW4H%2FbtsCLocN9e9%2Fb1Qk7zOKiLxtNsGfJTk2Nk%2Fimg.png)
디프만 14기에서 참여 중인 프로젝트에서 백엔드 리드 분이 엔티티의 id를 UUID, ULID로 설정한 것을 보았다. 늘 IDENTITY로 설정하여 MySQL이 AUTO_INCREMENT로 관리하도록 위임했기 때문에 기존 방식과 대비해서 어떤 장점이 있길래 사용하는지 알아보았다. AUTO_INCREMENT 전략의 단점 외부에서 예측하기 쉬운 PK PK가 선형적으로 증가하는 정수이기 때문에, 특정 데이터의 PK를 예측하기 쉬워진다. 실제로 request들의 파라미터를 테스트할 때 종종 느꼈던 것이다. 현재 유저의 id 2000이면 1 ~ 1999까지의 id를 가진 유저가 존재할 확률도 높은 것이다. 이는 단순히 노출된다의 문제를 넘어 SQL Injection 공격에도 취약해진다. DB에 의존적인 PK 개발..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyT4tP%2FbtsCQ3yrcEL%2FfTV4WxH15wKyrbTmuPdcvK%2Fimg.png)
사실 백엔드 공부를 하면서 인프라 단에서만 보안과 해킹 방어를 조심했지만, 어플리케이션 단에서의 보안은 크게 알아본 적은 없었던 것 같다. 프레임워크에서 기본적인 설정은 전부 되어 있어였지만, 알고 있지만 안하는 것이 아니라 아예 모르는 것은 문제가 될 수 있을 것 같다. 최근 참여한 모 기업의 채용 필기 테스트에서 이와 관련된 문제가 나왔었고, 최근 진행 중인 프로젝트에서 서버 리드가 UUID/ULID를 DB PK로 사용하는 것을 보고 찾아보던 중 이와 연관되어 한 번 정리해보고자 한다. SQL Injection 워낙 유명해 다들 한 번쯤은 들어봤을텐데, 임의의 SQL문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위이다. 다양한 공격법이 있지만, 가장 대표적인 Error..
💻 알고리즘 공부 노트 📚 문제 아카이브 note link DP DP 전형적인 유형 (표 형태) 동물원 DP 전형적인 유형 : 캐싱이 없으면 고려해야할 경우의 수가 너무 많은 문제 (표 형태) 금광 DP 전형적인 유형 : 입력에 따라 변하는 조건때문에 그리디는 안되고, 탐색은 시간초과날 경우 팩스 DP 냄새가 옅어도 파이썬에선 잘 캐치해야한다. 파이프 이동1 DP 문제처럼 보여도 그리디로 풀 수 있는 문제는? 택배 DP 문제처럼 보여도 메모리가 모자라다면 타개법을 찾아야하는 문제는? 신기한 소수 Two Pointer 투포인터를 써야한다는 것을 눈치채야하는 문제 Longest Strike 투포인터로 부분합 구하기 부분합 PS 원소가 두 개인 튜플 탐색 뱀 정렬 조건 설정하기, 조건 설정 방법별 소요 시간..
문제 https://www.acmicpc.net/problem/2653 2653번: 안정된 집단 주어진 입력이 안정되지 않은 집단의 경우는 첫줄에 빈칸 없이 0을 출력한다. 안정된 집단의 경우는 첫줄에 서로 좋아하는 소집단의 수를 빈칸 없이 출력하고, 그 다음 줄부터는 각 줄마다 각 소 www.acmicpc.net 해설 문제 설명과 조건이 복잡하고 길게 설명되어 있는데, 핵심은 간단하다. 1. 사람 간의 우호도가 다르면 불안정한 집단이다. 이 부분을 간접적으로 표현하고 있는데, 서로 좋아하는 사람끼리 그룹을 나누면 안정된 집단을 만들 수 있는데 서로의 우호도가 다르면 그룹을 나눌 수가 없다. 2. DFS로 탐색하면서 그룹화하고 그 결과를 저장한다. 한 번의 DFS 탐색에서 찾아지는 사람은 같은 그룹이다...
문제 https://www.acmicpc.net/problem/14215 14215번: 세 막대 첫째 줄에 a, b, c (1 ≤ a, b, c ≤ 100)가 주어진다. www.acmicpc.net 해설 아주 쉬운 문제지만, 삼각형의 세 변의 길이 조건을 알아야만 풀 수 있다. 문제에 가끔 나오니, 외워두자. 가장 긴 변은 나머지 두 변의 합보다 작아야 한다. 풀이 Memory: 30840kb Time: 68ms import sys; readline = sys.stdin.readline lines = list(map(int, readline().split())) lines.sort() cond = lines[0] + lines[1] if cond
1. 기획 전남대학교 개발동아리, 에코노베이션은 관리부가 다양한 자재들을 보유 및 관리, 대여를 해주고 있다. 22년도부터 관리부원이 되면서 느낀점은 마음대로 사용하는 여타 동아리와 다르게 엑셀을 통해 관리함으로서 최소한의 장치가 있기는 하지만 개선의 여지가 있다는 것이였다. 파악한 문제점은 다음과 같다. 대여/반납에 관리부의 수작업이 요구됨 (기존 자재 대여/반납 프로세스는 다음과 같다.) 슬랙을 통해 관리부에게 대여/반납을 요청 관리부가 자재 관리 엑셀에 기록 자재를 동방에서 대여/반납 현재의 상태만 엑셀에 기록하기 때문에 분실 혹은 파손되는 경우 역추적이 불가능 자재를 조회하기 위해서는 직접 동방에서 찾거나 다른 부원에게 물어봐야 함 우리는 개발 동아리가 아니던가, 디지털화해서 문제점을 스마트하게 ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6ELtz%2FbtrLITu1m7b%2FXNz1QlcKBceNsEJ4GkLkv1%2Fimg.jpg)
공고 전남대학교 소중단(소프트웨어중심대학사업)에서 K-SW 스퀘어 겨울학기 모집을 시작됬다. 소중단에서 중요하게 개최하는 프로그램 중에 참여해서 손해인 경우는 없지만, 이 프로그램의 경우 마음에 걸리는 점이 있었다. 프로그램에 참여하는 동안 기숙사를 빼야하고, 룸메이트와 방을 다시 잡기위해 기숙사 동호실 신청 광클을 또 해야한다 미국의 물가가 비싼만큼, 자부담 개인 생활비가 얼마나 들지 걱정된다 먼 나라 미국에서 100% 영어 환경인 프로그램을 참여한다는 진입장벽이 있다. 그래도 2번 외에 가장 큰 비용이 드는 부분을 소중단이 지원해주고, 3번은 최근에 여자친구와 영어로 대화하면서 자신이 조금 붙은 상태였다. 1번은 어찌할 방법은 없어서, 가벼운 마음으로 신청해서 붙으면 가고 말면 말자는 마음이였다. 복..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkSApp%2FbtrKzKFOZu8%2FdXi91JiH0kXFCjFRkLFOxk%2Fimg.png)
Install $ sudo apt update && sudo apt-get -y upgrade $ sudo apt-get install -y mariadb-server $ sudo mysql Configuration Environment setting $ sudo mysql mysql> use mysql mysql> SHOW VARIABLES LIKE 'c%'; (utf8 OR utf8mb4) mysql> SELECT now(); (KST 이여야함) mysql> exit; $ sudo timedatectl set-timezone 'Asia/Seoul' $ date $ sudo service mysql restart User setting $ sudo mysql mysql> use mysql; mysql..