본문 바로가기

전체 글

(72)
[SQL] 프로그래머스 고득점 kit - GROUP BY GROUP BY는 기본적으로, 데이터 그룹화 및 집계 작업의 핵심 기능임. 데이터를 특정 컬럼 값에 따라 그룹으로 묶고, 각 그룹에 대해 집계 함수를 적용할 때 사용됨. 예를 들어, employees 라는 테이블이 있고, employee_id, department_id, job_id, salary가 있을 때,특정 부서의 특정 직위가 받는 평균 연봉이 얼마인지 확인하려면 어떻게 해야하나? group by를 써서 딕셔너리로 치면 "key"가 되는 튜플을 만들어주면 됨.SELECT department_id, job_id, AVG(salary) AS avg_salaryFROM employeesGROUP BY department_id, job_id; 그럼 결과적으로 이렇게 dep_id와 job_id를 묶어서 하나..
[SQL] 프로그래머스 고득점 kit - select 관련 일단 키워드들을 외우기 전에, SQL 명령어의 기본 form부터 정리함 : 크게 4가지 - DDL, DML, DQL, DCL 1) DDL: Data Definition Language: 데이터베이스 구조 정의ex) create: 새로운 DB 생성, drop: 테이블 제거 2) DML: Data Manipulation Language: 데이터 조작ex) insert~values: 데이터를 테이블에 삽입, update: 테이블 데이터 수정, delete: 테이블 데이터 제거 3) DQL: Data Query Language: 데이터 조회ex) select~from~where, select~from~order by, select~from~group by~having 4) DCL: Data Control Lan..
[알고리즘] 충돌위험 찾기, 가장 많이 받은 선물, 도넛과 막대 그래프 충돌위험 찾기매우매우 꼬여있는 문제다. 처음 읽을 때는 안 그래보이지만, 막상 시작하면 어떻게 자료구조를 구축하느냐에 따라 매우매우 더러워질 수 있는 여지가 있는 문제다. 그러나 이는 구현의 영역이다. 중요한 것을 두 가지 깨달았다. 1 dictionary를 iterate 할때는 dictionary의 사이즈를 바꾸면 안된다. 나는 어차피 이미 해당 iteration이 끝나고 반영되기도 하고 list처럼 순서를 신경 쓰는 자료구조가 아니므로 문제없을 줄 알았는데, 이도 안된다는 것을 확인했다. 2 파이썬의 공간복잡도 제한은 생각보다 널널하다. 다른 사람의 풀이 중, 이걸 그냥 모든 로봇의 경로를 리스트화 한 다음 - 각 성분은 x,y,ind - 그걸 단순 비교해준 풀이도 있었다. 그렇게 하면 경로가 길어질..
[알고리즘] 동영상 재생기, 퍼즐 게임 챌린지, 충돌위험 찾기 동영상 재생기문자열 앞에 "0"값을 채우는 함수는 string_number.zfill(n)0이 아니라 다른 것으로 채우고 싶다면 string_number.rjust(n, "a")format도 있지만 외우지는 말자 내 풀이def solution(video_len, pos, op_start, op_end, commands): def trim(val): mn, sc = val.split(':') return int(mn)*60 + int(sc) video_len = trim(video_len) pos = trim(pos) op_start = trim(op_start) op_end = trim(op_end) if op_start   ..
[알고리즘] 실습용 로봇, 석유 시추, 보물 지도 실습용 로봇방향성을 다루는 부분을 단순하게 표현하기만 하면 금방 푸는 문제. 내 풀이def solution(command): x, y = 0, 0 dir_x, dir_y = 0, 1 for com in command: if com == 'G': x, y = x+dir_x, y+dir_y elif com == 'B': x, y = x-dir_x, y-dir_y elif com == 'R': dir_x, dir_y = dir_y, -dir_x else: dir_x, dir_y = -dir_y, dir_x return [x, y]  석유 시추2D를 traverse 하다가, 기름이 나타나면 그 기름이 속한 덩어리..
[신한은행] 디지털/ICT 공채 지원 후기 [ 신한은행 디지털/ICT 공채 과정 ]은 다음과 같다:1차: 서류                                2차: 코딩테스트                     3차(1): AI 역량 검사3차(2): 1차 면접4차: 최종 면접  Prelude: 학교를 졸업하고24년 9월, 길고 길었던 학교생활을 비로소 마치고 (무사히) 졸업장을 받은 시점, 과외로 돈 버는 것에 재미를 붙여가는 와중에 본격적으로 거취를 고민하던 때의 나는, 금융권, 특히 은행에 들어가겠다는 생각은 딱히 못하고 있었다.이유는 크게 두 가지인데,1 금융권은 대개 직군을 막론하고 학점을 보는데 나는 학점이 낮은 편이었고,2 금융권에서의 커리어가 개발자로써 성장하는 데에 도움이 되는지에 물음표가 있었기 때문이다. 평소에 핀테크에..
SQL BASICS 뽀개기 DBMS, RDBMS, NoSQL데이터들은 DB에 저장.이 DB를 관리하는 시스템을 DBMS 즉, DataBase Management System이라고 함.RDBMS는 데이터가 표 형태로 저장되어 고정된 스키마를 가지고 있는 형태를 뜻하고.NoSQL은 데이터가 고정된 스키마 없이 다양한 방식으로 저장 가능 - 딕셔너리, 문서, 그래프 등.RDBMS로는 MySQL, PostgreSQL, Oracle 등이, NoSQL로는 MongoDB (문서형) 등이 있음.RDBMS는 수직확장(기존의 서버를 업그레이드)에 더 적합함. 수평확장 (다중 서버)은 어려움.RDBMS에 우리가 접근하여 뭔가 인터랙션할 수 있는 언어가 SQL. NoSQL은 다 다름 - MongoDB는 MQL. * 기본적으로는 SQL은 백엔드 DB용이..
[스프링 리뷰] 스프링 기본적으로는 JAVA 진영에서 가장 많이 사용되는 프레임워크.다시말해, 개발자가 애플리케이션을 개발하고 싶은데 JAVA 언어를 쓰고 싶다면, 그걸 잘 도와주는 아이가 스프링이다.개발자가 비즈니스 로직에 더 집중할 수 있도록 기술적인 부분을 관리해줌. 다양한 모듈로 구성되어 있다. 핵심 컨테이너, 웹, 데이터, 메시징, AOP 등의 모듈이 있는데 개발자가 필요에 따라 선택적으로 사용할 수 있음. 중요한 디자인 패턴으로는 의존성 주입 (Dependency Injection), 제어역전 (Inversion of Control), 관점 지향 프로그래밍 (AOP) 등이 있음 => 궁극적으로는 느슨한 결합 (Loose Coupling)을 달성할 수 있음. 느슨한 결합은 단위 테스트를 수행하기 용이함.   *..