만족은 하되 안주하지는 말자

기록해야 기억한다

전체 글 168

[MySQL] 명령어 암기 노트

프로그래머스 SQL 문제들을 풀며 기억해야 하는 명령어 형식에 대해 모아 놓아 보았다. 역순 정렬 SELECT NAME,DATETIME from animal_ins order by ANIMAL_ID desc; 해당 조건이 아닌 것만 고르기 SELECT NAME,DATETIME from animal_ins where Condition != "Aged"; SELECT ANIMAL_ID,NAME from animal_ins 이름 정렬, 동일한 경우엔 datetime 이 '느린순' SELECT ANIMAL_ID,NAME,DATETIME from animal_ins ORDER BY name, DATETIME desc; 상위 1개만 출력하기 SELECT NAME from animal_ins order by date..

[python] 백준 1759번: 암호 만들기 (백트래킹)

문제 www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 테마 DFS & 백트래킹 아이디어 1. 들어온 암호 문자들을 오름차순 정렬한다. 2. DFS 를 통해 l 길이만큼의 암호를 만든다. 3. 길이 l 인 경우이면서 모음이 최소 1개, 자음이 최소 2개인 경우 출력한다. 4. 그렇지 않은 경우 백트래킹을 통해 다음 번 경우의 수를 찾는다. 5. 이를 반복한다. 코드 from sys import stdin from copy import deepcopy l,c = ma..

[Java] abstract class 추상클래스란?

추상클래스에서 추상이란? 추상은 실체의 공통 특성을 추출하는 것을 의미한다. 예를 들어, 트럭과 승용차는 모두 자동차라는 공통점이 있고 '주행한다' 라는 공통된 행위도 묶을 수 잇다. 이처럼 구체적인 실체라기보다는 공통적인 특성을 추상적으로 묶은 것이라 할 수 있다. 그럼 추상 클래스는? 실체 클래스들의 공통 특성을 묶어 분리 선언한 클래스를 추상클래스라고 한다. 말하자면 추상클래스와 실체클래스는 상속의 관계를 지닌다. 추상클래스 특징은? * 추상클래스만으로 인스턴스를 생성할 수 없다. 즉 new 연산자 통해 객체 생성이 불가. * 추상 클래스는 extends 키워드 뒤에만 올 수 있다. 자식클래스로는 사용할 수 없다. 그럼 왜 쓰는 것인가? 1. 클래스들의 공통적인 필드와 메소드의 이름을 통일해 협업시..

[python] 프로그래머스 삼각 달팽이

링크 programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 설명 달팽이 숫자 만들기의 삼각형 버전이다. 반시계방향으로 숫자를 채워나가야 한다. n 범위가 ~1000 이므로 n = 1000 일때의 시도횟수가 대략 몇회인지 고민을 먼저했다. n에 따른 삼각형 네모칸의 갯수는 n(n+1) / 2 와 같다. 대략 1000일때 50만번 카운팅 하면 된다. DFS/BFS 처럼, dx와 dy를 통해 삼각형 배열의 움직이는 방향을 지정했다. 삼각형을..

[python] 프로그래머스 스킬트리

programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 윈터코딩 ~2018 에 속한 문제. 시간복잡도 고려 최대 가능한 연산수가 26*26*20이기에 O(n^2) 까지의 시간복잡도여도 문제가 없을 것으로 예상된다. 코드 from collections import deque from copy import deepcopy def solution(skill, skill_trees): answer = 0 p_skill = deque([]) for c in skill: p_skill.append(c) for skill in skill_trees: if check(p_skill,skill): answer +=1 return..