전체 글

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 이상 ..
다 모르겠고, 가장 이상적인 아키텍처만 보고 싶은 사람은 현실적인 소규모 아키텍처 섹션을 보면 된다. 퍼블릭 클라우드를 사용할 때 영어로 하든 한국어로 하든 기능 이해하기도 어렵고 가이드가 복잡하더라도 AWS 사용하는데는 여러가지가 이유가 있다. 많은 회사가 AWS를 사용하고 있어서 경험싶은 것도 있지만, 학생으로서 가격이 큰 이유였다. AWS에는 수 많은 서비스들이 존재하고 완벽한 아키텍처를 구성하기 위해 많은 기능들을 추가할 수 있다. 하지만 의외로 일부 서비스를 제외하고는 합리적인 가격이거나 일정 범위 내에서 무료인 경우가 많다. NCP 아키텍처 NCP는 한국 클라우드이기도 하고 후발주자라 그런지 문서화가 굉장히 잘 되어있다. 가끔 AWS의 한국 도큐먼트를 보면 한국어를 읽고 있는데도 이해가 안되고..
디프만 14기에서 참여 중인 프로젝트에서 백엔드 리드 분이 엔티티의 id를 UUID, ULID로 설정한 것을 보았다. 늘 IDENTITY로 설정하여 MySQL이 AUTO_INCREMENT로 관리하도록 위임했기 때문에 기존 방식과 대비해서 어떤 장점이 있길래 사용하는지 알아보았다. AUTO_INCREMENT 전략의 단점 외부에서 예측하기 쉬운 PK PK가 선형적으로 증가하는 정수이기 때문에, 특정 데이터의 PK를 예측하기 쉬워진다. 실제로 request들의 파라미터를 테스트할 때 종종 느꼈던 것이다. 현재 유저의 id 2000이면 1 ~ 1999까지의 id를 가진 유저가 존재할 확률도 높은 것이다. 이는 단순히 노출된다의 문제를 넘어 SQL Injection 공격에도 취약해진다. DB에 의존적인 PK 개발..
사실 백엔드 공부를 하면서 인프라 단에서만 보안과 해킹 방어를 조심했지만, 어플리케이션 단에서의 보안은 크게 알아본 적은 없었던 것 같다. 프레임워크에서 기본적인 설정은 전부 되어 있어였지만, 알고 있지만 안하는 것이 아니라 아예 모르는 것은 문제가 될 수 있을 것 같다. 최근 참여한 모 기업의 채용 필기 테스트에서 이와 관련된 문제가 나왔었고, 최근 진행 중인 프로젝트에서 서버 리드가 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년도부터 관리부원이 되면서 느낀점은 마음대로 사용하는 여타 동아리와 다르게 엑셀을 통해 관리함으로서 최소한의 장치가 있기는 하지만 개선의 여지가 있다는 것이였다. 파악한 문제점은 다음과 같다. 대여/반납에 관리부의 수작업이 요구됨 (기존 자재 대여/반납 프로세스는 다음과 같다.) 슬랙을 통해 관리부에게 대여/반납을 요청 관리부가 자재 관리 엑셀에 기록 자재를 동방에서 대여/반납 현재의 상태만 엑셀에 기록하기 때문에 분실 혹은 파손되는 경우 역추적이 불가능 자재를 조회하기 위해서는 직접 동방에서 찾거나 다른 부원에게 물어봐야 함 우리는 개발 동아리가 아니던가, 디지털화해서 문제점을 스마트하게 ..
공고 전남대학교 소중단(소프트웨어중심대학사업)에서 K-SW 스퀘어 겨울학기 모집을 시작됬다. 소중단에서 중요하게 개최하는 프로그램 중에 참여해서 손해인 경우는 없지만, 이 프로그램의 경우 마음에 걸리는 점이 있었다. 프로그램에 참여하는 동안 기숙사를 빼야하고, 룸메이트와 방을 다시 잡기위해 기숙사 동호실 신청 광클을 또 해야한다 미국의 물가가 비싼만큼, 자부담 개인 생활비가 얼마나 들지 걱정된다 먼 나라 미국에서 100% 영어 환경인 프로그램을 참여한다는 진입장벽이 있다. 그래도 2번 외에 가장 큰 비용이 드는 부분을 소중단이 지원해주고, 3번은 최근에 여자친구와 영어로 대화하면서 자신이 조금 붙은 상태였다. 1번은 어찌할 방법은 없어서, 가벼운 마음으로 신청해서 붙으면 가고 말면 말자는 마음이였다. 복..
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..
sckwon770
sckwon770