전체 글 168

[프로그래머스] 추석 트래픽 (Python, Level3)

코딩테스트 연습 - [1차] 추석 트래픽입력: [ "2016-09-15 20:59:57.421 0.351s", "2016-09-15 20:59:58.233 1.181s", "2016-09-15 20:59:58.299 0.8s", "2016-09-15 20:59:58.688 1.041s", "2016-09-15 20:59:59.591 1.412s", "2016-09-15 21:00:00.464 1.466s", "2016-09-15 21:00:00.741 1.581s", "2016-09-1programmers.co.kr아이디어일단 string에 대한 처리를 해주어야한다. 로그 기록이 하루치기에 input으로 주어지는 9월 15일이라는 정보는 중요하지 않다. 시간이 주어지고, 처리시간이..

[프로그래머스] 가장 긴 팰린드롬 (Level 3, Python)

코딩테스트 연습 - 가장 긴 팰린드롬 앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들 programmers.co.kr 아이디어 처음엔 삽질을 좀 했다. string의 character를 하나씩 확인하면서 양쪽 투포인터를 써서 팰린드롬인지 확인해 나갈건데 1. "abbba" 와 같은 경우 2번 인덱스의 b 기준으로 양쪽으로 퍼지면 된다. 그래서 l과 r을 i로 설정하여 양쪽으로 보내면 되는 것인데, 다음과 같은 경우를 보자. l,r = i,i 로 설정하면 이런 반례가 생겨버린다. 2. "abccba"의 경우 l,r을 (i,i)..

7장 SQL 고급(1장 , 2장)

7-1 데이터 형식, 변수 1. 숫자데이터 형식 2. 문자 데이터 형식 CHAR은 고정이라 CHAR(100)을 잡고 3글자를 기입하면 97바이트가 낭비됨. VARCHAR는 100을 잡고 3글자 기입하면 3바이트만 사용. 공간은 효율적으로 운영할 수 있지만 CHAR 형식으로 지정하는 것이 INSERT/UPDATE시에 일반적으로 좋은성능 기본적으로 둘다 UTF-8로 설정되어있음. LONGTEXT, LONGBLOB : 소설책 / 동영상 등 저장 3. 날짜 시간 데이터 형식 시간,분,초가 필요하면 DATETIME 날짜까지만이라면 DATE까지. 형변환 예시. 4. 기타 데이터 형식 5. 변수의 사용 쿼리를 준비해놓고, ? 자리에 myVar를 대입해서 실행 시킬 수 있음. 7-2장 데이터형 변환, 내장 함수 1. ..

Data Handling/MySQL 2022.02.23

[백준 1043] 거짓말 (파이썬,BFS)

1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net 아이디어 go_party = 사람 : [파티 1,2,3,4 ... ] 어느 사람이 어느 파티에 가는지 input 받으면서 저장해둡니다. 파티를 확인했는데 진실을 아는사람이 있다면 해당 파티에 온사람들은 진실을 알고있으므로 온사람들을 True로 해줘야 하는데, 온사람들이 가는 파티를 방문해가면서 (BFS) 온사람들이 가는 파티의 인원들도 True처리 해줍니다. 파티에 진실을 아는 사람이 없는 경우에만 정답을 출력해줍니다. 예를들어 이러한 경우에 1번 사람이 진실을 알고있으니..

6장(SQL기본)

6-1장 SELECT FROM USE [DB name] : 어떤 DB에 접근할건지 SELECT * FROM [table name] : 테이블의 모든 column내용 조회 SELECT [columns] FROM [table name] : 테이블의 특정 column조회 - ex) SELECT first_name, gender FROM employees; : 여러 열 조회 SHOW DATABASES; : DB목록 조회 SHOW TABLE STATUS; : 현재 선택된 DB의 테이블들의 정보 조회 DESCRIBE [table name]; : 해당 table의 정보 조회 6-2장 샘플 데이터베이스 생성 6-3장 WHERE절 1.특정 column의 값 지정 2. 관계연산자 사용 - AND, OR 3. BETWEEN..

Data Handling/MySQL 2022.02.11

객체 지향 설계와 스프링

본문은 김영한님의 스프링 핵심원리 - 기본편의 내용을 담고있습니다. 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 스프링이란 ? 자바계열 표준기술 EJB(Enterprise Java Beans) 이론상 좋은데, 개발자들이 죽어남. 너무 복잡하고 쓰기 어렵기까지 한데, 느림.. 스프링 생태계 여러가지 기술들의 모음 필수적인 스프링 프레임워크 / 스프링 부트 선택적으로 스프링 데이터 / 세션 / 시큐리티 / Rest Docs / 배치 / 클라우드 등등.. 결국 가장 중요한건 스프링 프레임워크 핵..

Backend/Spring 2022.01.12

[백준 10025] 게으른 백곰 ( 투 포인터 및 부분 합 )

10025번: 게으른 백곰 첫 줄에 정수 N과 K가 들어온다. 둘째 줄부터 N째 줄까지, 공백을 사이에 두고 각 양동이의 얼음의 양을 나타내는 gi와 양동이의 좌표를 나타내는 xi가 주어진다. www.acmicpc.net 아이디어 백곰의 위치를 구하는거 보다 얼음 위치가 난잡하게 input으로 들어와서 일단 오름차순으로 정렬 한 후에 각 얼음을 가장 왼쪽으로 두고 백곰의 왼손 위치라고 생각하면 오른손은 왼손 위치+ K*2에 위치 할 수 있기 때문에 범위를 합한다고 생각하고 접근했다. 그래서 범위를 표시할 수 있는 왼쪽, 오른쪽 포인터만 생각하고 문제를 풀다가 해당 범위를 더하는 과정이 길었는지 시간초과가 났었다. 추가 아이디어 조건을 충족할 때마다 for문으로 얼음 무게 합을 구하지 말고 미리 합을 구해..

python2, python3 혼용 사용(동시 사용, 함께 사용) 환경

필자는 python2.7과 3.10을 함께 쓰고 있다. vscode 에서 인터프리터로 3.10을 잡고, 명령 프롬프트에서는 2.7을 사용하고 있었는데 명령 프롬프트에서 python 3를 써야했기에 글을 남깁니다. 짧막하게 요약해서 남깁니다. mklink 커맨드를 통해 커맨드를 연결해주면 되는데, cmd ( 관리자 권한으로 실행 ) > mklink C:\Windows\python2.exe [파이썬 2 설치경로]\python.exe > mklink C:\Windows\python3.exe [파이썬 3 설치경로]\python.exe 를 사용해주면 된다. 대부분의 python 2 설치 경로는 C:\Python27 python3 설치 경로는 C:\[사용자폴더]\AppData\Local\Programs\Python..

[클린코드 작성하기] 주석 & 포맷팅

주석 모든 내용을 주석으로 넣게되면 코드가 지저분 해짐. 네이밍을 잘하면 충분히 해결 가능 네이밍으로 표현할 수 없는 영역을 주석으로 표현하기 바람. 법적인 정보 담을 때 : Copyright등등.. 의도를 명확하게 설명할 때 : 함수내 알고리즘 설명할 때, 중요성을 강조할 때 결과를 경고할 때 관용적으로 사용되는 키워드 TODO : 당장은 아니지만 다음에 해야할 때 ( TODO@sihyeon : 객체의 책임 더 분리하기 등등 ) FIXME : 치명적인 에러를 발생하는 코드는 아니지만 수정해야할 때 ( 반복문의 depth를 줄이기 ) XXX : 더 생각해볼 필요가 있을 때 포맷팅 Vertical Formatting ( 파일 라인이 길어지는 경우 ) : 한 파일에 코드를 다 넣지 말고, 개념에 맞게 파일을..

[클린코드 작성하기] 네이밍

Convention 대표적으로 4가지. 명명된 컨벤션 이름만 봐도 알 수있음. snake_case : 언더바 형태로 띄워쓰기 표기 camelCase : 낙타의 혹같이 띄워쓰기 표기 PascalCase : 첫글자부터 대문자. 대부분의 프로그래밍 언어에서 클래스를 네이밍할 때 사용 kebab-case : HTML Element를 표현할 때 사용 변수와 상수 : 동사, 형용사 형태 user_data = ... #명사 is_valid = .. # 형용사 함수와 메서드 : 동사 , 형용사 구문 형태로 지음 send_data() / input_is_valid() 클래스 : 명사, PascalCase class Client: ... class RequestBody: Tips ( 명시적 ! ) 1. 구체적이고 명시적으..