[프로그래머스 SQL] 입양 시각 구하기(1)
프로그래머스 SQL 문제 해설2022. 2. 20. 13:24[프로그래머스 SQL] 입양 시각 구하기(1)

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/59412 HOUR 함수를 사용해봅시다. WHERE으로 입양 시각이 9 ~ 19 시간 내인 경우만 가져오고, GROUP BY로 묶은 후, ORDER BY로 정렬합니다. SELECT HOUR(DATETIME) AS 'HOUR', COUNT(HOUR(DATETIME)) AS 'COUNT' FROM ANIMAL_OUTS WHERE HOUR(DATETIME) >= 9 and HOUR(DATETIME)

[프로그래머스 SQL] 동명 동물 수 찾기
프로그래머스 SQL 문제 해설2022. 2. 20. 13:20[프로그래머스 SQL] 동명 동물 수 찾기

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/59041 이 문제는 WHERE 조건문과, HAVING 조건문의 차이를 알고 있어야만 풀 수 있는 문제입니다. 모든 동물의 명을 세는데, NULL인 경우는 제외하고 중복되지 않는 경우도 제외합니다. 그 후에는 이름 순으로 정렬합니다. SELECT NAME, COUNT(NAME) AS COUNT FROM ANIMAL_INS WHERE NAME IS NOT NULL GROUP BY NAME HAVING COUNT(NAME) >= 2 ORDER BY NAME ASC 문제 해설 WHERE으로 NULL인것을 거르고, GROUP BY로 묶고, HAVING 조건으로 COUNT 수가 2 이상인 것만 가져옵니다. ORD..

[프로그래머스 SQL] 고양이와 개는 몇 마리 있을까
프로그래머스 SQL 문제 해설2022. 2. 20. 12:57[프로그래머스 SQL] 고양이와 개는 몇 마리 있을까

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/59040 GROUP BY 그루핑하고, COUNT로 각 ANIMAL_TYPE을 세어준 후 정렬합니다. SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE ASC 결과

[프로그래머스 SQL] 중복 제거하기
프로그래머스 SQL 문제 해설2022. 2. 20. 12:52[프로그래머스 SQL] 중복 제거하기

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/59408 동물의 이름의 종류의 수를 구하는 문제입니다. 동물의 이름이 NULL인 경우에는 수를 세지 않습니다. SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS WHERE NAME IS NOT NULL DISTINCT(중복 제거), WHERE IS NOT NULL문 사용합니다. 1. WHERE 조건문으로 NULL이 아닌 경우에는 갯수 셉니다. 2. COUNT(DISTINCT NAME)으로 NAME열에 중복이 되지 않는 경우에 갯수를 셉니다. 결과

[프로그래머스 SQL] 동물 수 구하기
프로그래머스 SQL 문제 해설2022. 2. 20. 12:45[프로그래머스 SQL] 동물 수 구하기

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/59406 COUNT(세고 싶은 열)으로 동물 수(열 안의 행의 수)를 셀 수 있습니다. COUNT(*)말고 다른 열을 적어도 결과는 같습니다. SELECT COUNT(*) AS 'count' FROM ANIMAL_INS 결과

[프로그래머스 SQL] 최솟값 구하기
프로그래머스 SQL 문제 해설2022. 2. 20. 12:43[프로그래머스 SQL] 최솟값 구하기

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/59038 이전 문제와 동일한 로직입니다. MIN으로 가장 작은 값을 가져오면 됩니다. SELECT MIN(DATETIME) AS '시간' FROM ANIMAL_INS 결과

[프로그래머스 SQL] 최댓값 구하기
프로그래머스 SQL 문제 해설2022. 2. 20. 12:41[프로그래머스 SQL] 최댓값 구하기

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/59415 가장 최근에 들어온 동물, DATETIME이 가장 최근인 동물을 가져옵니다. 이전 문제와 같은 로직이지만 이번에는 MAX함수를 사용하겠습니다. SELECT MAX(DATETIME) AS '시간' FROM ANIMAL_INS 열의 이름을 변경하는 방법은 열 옆에 AS '변경명'을 작성하여 변경할 수 있습니다. 결과 결과 2 (AS로 이름을 변경하지 사용하지 않았을 때)

[프로그래머스 SQL] 상위 n개 레코드
프로그래머스 SQL 문제 해설2022. 2. 20. 00:56[프로그래머스 SQL] 상위 n개 레코드

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/59405 동물 보호소에 가장 먼저 들어온 동물의 이름을 조회합니다. 오름차순 정렬 후, LIMIT로 위에서 1번째까지만 출력했습니다. SQL에서의 인덱스는 0부터 시작하지 않고, 1부터 시작합니다. 곧 배울 MAX함수로도 구현할 수 있지만, SELECT문제니 LIMIT를 사용하였습니다. SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1 결과

[프로그래머스 SQL] 여러 기준으로 정렬하기
프로그래머스 SQL 문제 해설2022. 2. 20. 00:37[프로그래머스 SQL] 여러 기준으로 정렬하기

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/59404 ANIMAL_ID, NAME, DATETIME를 출력합니다. 이름 순으로 오름차순 정렬하고, 이름이 같은 경우에는 내림차순으로 정렬한다. 정렬 기준은 먼저 적은 순서로 적용됩니다. SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS ORDER BY NAME ASC, DATETIME DESC 결과

[프로그래머스 SQL] 동물의 아이디와 이름
프로그래머스 SQL 문제 해설2022. 2. 20. 00:32[프로그래머스 SQL] 동물의 아이디와 이름

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/59403 ANIMAL_ID와 NAME 열을 출력합니다. SELECT ANIMAL_ID, NAME FROM ANIMAL_INS 결과

[프로그래머스 SQL] 어린 동물 찾기
프로그래머스 SQL 문제 해설2022. 2. 20. 00:29[프로그래머스 SQL] 어린 동물 찾기

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/59037 INTAKE_CONDITION가 'Aged' 아닌 것들 중에서 ANIMAL_ID, NAME 열들을 출력합니다. SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION != 'Aged'; 결과

[프로그래머스 SQL] 아픈 동물 찾기
프로그래머스 SQL 문제 해설2022. 2. 20. 00:23[프로그래머스 SQL] 아픈 동물 찾기

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/59036 INTAKE_CONDITION이 'Sick'인 동물들을 ANIMAL_ID 오름차 순으로 정렬하고 ANIMAL_ID, NAME 열을 가져옵니다. SELECT ANIMAL_ID, NAME # 가져올 열 FROM ANIMAL_INS WHERE INTAKE_CONDITION = 'Sick' # WHERE 조건문, 상태만 Sick인 동물 ORDER BY ANIMAL_ID ASC #오름차순 정렬 결과

[프로그래머스 SQL] 역순 정렬하기
프로그래머스 SQL 문제 해설2022. 2. 20. 00:20[프로그래머스 SQL] 역순 정렬하기

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/59035 NAME, DATETIME 열을 가져오고 ANIMAL_ID을 내림차순으로 정렬합니다. SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC; 결과

[프로그래머스 SQL] 모든 레코드 조회하기
프로그래머스 SQL 문제 해설2022. 2. 20. 00:05[프로그래머스 SQL] 모든 레코드 조회하기

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/59034 모든 동물 정보를 ANIMAL_ID 순서(오름차 순)로 출력하는 문제입니다. SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID ASC 테이블이 이미 오름차순으로 정렬되어 있기 때문에 2번째 줄은 적지 않아도 상관없습니다. 결과

프로그래머스 SQL 문제 해설2022. 2. 19. 23:44SQL | SELECT에 대하여

SELECT에서 자주 사용하는 문법들 SELECT 가져올 열 [, 가져올 열] .. [FROM 가져올 테이블] [WHERE 검색 조건] [GROUP BY {행 이름 | 열 | 위치} ] [HAVING 검색 조건] [ORDER BY {행 이름 | 열 | 위치} [ASC | DESC]] [LIMIT {[offset, ] row_count | row_count OFFSET offset}] ~에 대하여는 아래 문제들을 전부 풀고 다시 보시는 것을 추천합니다. SELECT FROM 문은 다음과 같이 사용할 수 있습니다. 테이블에서 필요로 하는 열만 가져오는 기능 * 을 적으면 모든 열을 가져옵니다. 열 이름을 적은 순서대로 가져옵니다. (구분은 (,)콤마로) 예제 문제 : 모든 레코드 조회하기, 동물의 아이디와 ..

[SW 마에스트로] 13기 서류 합격 후기 + 작성법 공유
회고록2022. 2. 13. 23:31[SW 마에스트로] 13기 서류 합격 후기 + 작성법 공유

이번에도 작년, 재작년과 자소서 질문이 같았어요. 14기를 준비하시는 분들은 다음에 대해 한번 답해보면 도움이 많이 될 것이라고 생각합니다. 제 경험은 예시로만 생각해주세요. 최대한 참고는 많이 되지만 지원자분들의 개성을 잃지 않을 수 있도록 작성했습니다. 지금 14기 준비 오픈채팅방도 있으니 진행되는 스터디에 참여하는 것도 도움이 많이 될듯합니다. [자기소개1] 소프트웨어분야 전문성을 키우기 위해 남들과 달리 특별한 노력을 한 경험을 서술하여 주시기 바랍니다. [자기소개2] 귀하의 장래희망을 서술하여 주시기 바랍니다. [연수계획서 1] 귀하께서는 2022년도 「SW마에스트로」 과정에서 동료 연수생들과 협력하여 새로운 프로젝트를 완성하여야 합니다. 어떤 능력을 갖춘 연수생들과 어떠한 프로젝트를 어떻게 수..

소프트웨어 마에스트로 11기 12기 13기 문제 유형 정리
How to.2022. 1. 26. 19:34소프트웨어 마에스트로 11기 12기 13기 문제 유형 정리

소마에서는 문제 유형을 공개하기 않기 때문에 11기 12기 연수생분들의 후기글을 정리하였습니다. 때문에 절대로 정확한 정보가 아니며 참고용으로만 사용하시면 굉장히 좋을 것입니다. 제가 모은 자료에서의 소마 근 3년간의 코테 유형은 다음과 같습니다. 코딩 문제 중 복수의 접근방법을 가진 문제가 있습니다. 11기, 12기 연수생분들의 접근 방법에 따른 문제 유형이기 때문에, 문제 수가 적어도 문제 유형이 많을 수도 있습니다. 소마 11기 코테 SWM 11기 1차 코딩테스트 3 1 1 알고리즘 SQL web 구현 그리디 완전탐색 (브루트 포스) BFS select 웹 통신 API(JS fetch api) SWM 11기 2차 코딩테스트 3 1 1 알고리즘 SQL web DP BFS/DFS 유니온 파인드(Unio..

Python2021. 12. 21. 16:00[파이썬 모듈 collections] deque 큐의 이해, 사용법

파이썬 코딩 테스트에서 자주 사용되는 데큐(deque)입니다. from collections import deque 이렇게 불러올 수 있습니다. deque를 사용하면 얻는 장점 엄격한 리스트를 만들 수 있다. 속도가 리스트에 비해 굉장히 빠르다. List = O(n), deque = O(1) 당연하지만 큐작업이 훨씬 편해진다. 큐(QUEUE)에 대한 이해. 큐는 기본적으로 선입 선출 (FIFO : First In First Out)구조입니다. 예시로는 다음이 있습니다. 프린터기 : 프린터기는 먼저 인쇄를 누른 것부터 차례대로 작동합니다. 은행 대기표 : 은행에서는 먼저 대기표를 뽑은 사람부터 차례대로 서비스를 진행합니다. deque 함수는 큐에 제한되어 있는 선입선출 제한을 풀어서, 더 여러곳에 사용할 ..

Python2021. 12. 20. 16:00[백준 2108] 통계학 해설 및 풀이 (파이썬)

백준 알고리즘 2108 | 통계학 https://www.acmicpc.net/problem/2108 최근에 구현 문제를 풀기 시작했는데, 재미있네요 ㅋㅋ 산술평균 : N개의 수들의 합을 N으로 나눈 값 (반올림) 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 입력된 값을 다음과 같이 출력해야하는 문제입니다. 시간초과 이 문제가 시간 초과가 뜬다면, 다음을 확인해주세요. 1. sys.stdin.readline()을 사용하는가? input보다 속도면에서 확연한 차이를 보입니다. readline으로 입력을 받으세요. 2. 시간 복잡도가 높은가? 아마도 최빈값에서 시간 복잡도가 높아..

Python2021. 12. 17. 16:00[파이썬] 반올림 구현하기, 반올림 사사오입 구현

파이썬에는 round라는 반올림 함수가 있다. >>> round(0.5) 0 >>> round(1.5) 2 >>> round(2.5) 2 >>> round(3.5) 4 >>> round(4.5) 4 >>> round(5.5) 5 다만 파이썬이나 자바스크립트 같은 개발언어에서는 위와 같이 "오사오입"이라는 방식의 반올림을 사용합니다. 오사오입(round-to-nearest-even) 반올림에서 5 미만의 숫자는 내림, 5 초과의 숫자는 올림합니다. 5의 앞자리가 홀수인 경우에는 올림을, 짝수인 경우에는 내림을 합니다. 우리가 자주 사용하는 사사오입의 반올림은 4 이하의 숫자는 내림, 5 이상의 숫자는 올림을 하는 반올림이죠! 반올림의 종류에 관해서는 이 문서를 읽어주세요. 사사오입의 반올림을 구현하는 방법..

Python2021. 12. 16. 16:00[파이썬] Input, sys.studin.readline 입력 값 시간 줄이기

백준은 입력값을 받아서 문제를 푸는 구조입니다. input() import sys sys.stdin.readline() 이 둘은 기능상으로는 큰 차이가 없지만, 속도 차이가 큽니다. 그래서 input으로 작업한 코드가 시간 초과가 났을 때, sys 입력으로 변경해주면 정답처리가 될 확률이 큽니다. 다만, 적혀있는 input들을 전부 변경하기에는 굉장히 귀찮은 작업인데요. 여기서 팁 하나, import sys input = sys.stdin.readline 을 코드 제일 위에 추가한다면, input이 sys.stdin.readline의 속도를 갖습니다.

Python2021. 12. 15. 16:00[파이썬] 0으로 이루어진 리스트 만들기

파이썬에서 리스트를 생성할 때는 다음과 같은 방법이 있다. list = [] list = list() 여기서 코딩테스트에서 자주 사용하는 0으로 이루어진 리스트를 만들려면 다음과 같은 방법이 있다. list = [0 for i in range(n)] >>> list = [0 for i in range(10)] [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 이와 같은 방법을 사용해서 2차원 리스트를 만들려면 다음과 같은 방법을 사용하면 된다. double = [[0 for w in range(n)] for h in range(n)] >>> double = [[0 for w in range(3)] for h in range(5)] [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, ..

[파이썬 모듈] 포토샵 API 예제
Python2021. 12. 13. 16:00[파이썬 모듈] 포토샵 API 예제

원본 링크 : https://github.com/loonghao/photoshop-python-api 어도비사의 포토샵 API 한글 예제입니다. 번역되어 있는 자료가 없어, 새로 번역하였습니다. 지원되는 버전 2021 2020 cc2019 cc2018 cc2017 설치 pip install photoshop_python_api 포토샵이 설치 되어 있어야 작동합니다. 예제 코드 폰트는 어도비 기본폰트가 아니라면 대부분이 적용되지 않습니다. 폰트명은 영어명으로 지정해줘야 작동합니다. import photoshop.api as ps app = ps.Application() # 포토샵 불러오기 doc = app.documents.add(1920, 1080) # 문서 생성 사이즈 : 1920x1080 text_l..

[백준 1080] 행렬 해설 및 풀이 (파이썬)
Python2021. 12. 9. 16:00[백준 1080] 행렬 해설 및 풀이 (파이썬)

백준 알고리즘 1080번 | 행렬 https://www.acmicpc.net/problem/1080 문제 0과 1로만 이루어진 행렬 A와 행렬 B가 있다. 이때, 행렬 A를 행렬 B로 바꾸는데 필요한 연산의 횟수의 최솟값을 구하는 프로그램을 작성하시오. 행렬을 변환하는 연산은 어떤 3×3크기의 부분 행렬에 있는 모든 원소를 뒤집는 것이다. (0 → 1, 1 → 0) 입력 첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다. 출력 첫째 줄에 문제의 정답(뒤집을 수 있는 최소 횟수)을 출력한다. 만약 A를 B로 바꿀 수 없다면 -1을 출력한다. 예제 입력 1 3 4 0000 0..

Python2021. 12. 4. 16:00[파이썬] zip, Unzip 함수 설명

zip함수 zip은 반복 가능한 요소들을 압축하는 기능을 가지고 있습니다. 반복 가능한 요소들에는 리스트, 튜플, 딕셔너리, set이 있습니다. zip의 기본형태: zip(반복 가능한 요소 1, 반복가능한 요소 2, 반복 가능한 ... ) zip을 사용해보겠습니다. listA = ['Alice', 'Anna'] listB = ['Bob', 'Jon', 'Frank'] >>> print(list(zip(listA, listB))) [('Alice', 'Bob'), ('Anna', 'Jon')] # 이런느낌 listA = ['i1', 'i2'] listB = ['i1', 'i2', 'i3'] >>> print(list(zip(listA, listB))) [('i1', 'i1'), ('i2', 'i2')] z..

Python2021. 12. 3. 16:00[파이썬] filter, map, lambda 함수 설명

오늘은 효율성 있는 코드를 짤때 자주 사용되는 filter, map, lambda에 대해 공부해보겠습니다. 이 글에 적힌 내용을 마스터하시면 코드 효율성은 물론이고, 코딩할 때 멋이 삽니다. lambda 함수 람다식은 간단한 함수를 한줄로 축약하는 기능을 가졌습니다. 람다의 장점은 메모리 절약이 있고, 특징으로는 "elif는 사용 불가"가 있습니다. 기본 형태는 다음과 같습니다. lambda : if else 만약 n이 17보다 크면 True를 그렇지 않다면 False를 반환하는 코드를 함수와 람다식으로 각각 아래와 같이 표현할 수 있습니다. 1. 함수 def calc(n): if n > 17: return True else: return False 2. 람다 lambda n : True if n>17 ..

Python2021. 12. 1. 16:00[파이썬] 코로나 자동 자가진단 (리눅스 오픈소스)

개발 날짜 : 2021.03.31 ~ 리눅스 서버에서 돌아가는 코드입니다. 권장 사항 : 이 프로그램은 코로나 19 자가진단을 무증상으로 제출하는 프로그램입니다. 증상이 있을 시 스스로 해당하는 증상에 유증상으로 체크하시기 바랍니다. 프로젝트 관련 추천글 리눅스 서버 무료로 만들기 리눅스 백그라운드 실행 리눅스 파이썬 모듈 설치 리눅스 설치 필요 모듈 schedule selenium selenium-webdriver 개발 일지 1.1.0 이제 원하는 시간에 자가진단을 진행할 수 있습니다. 기본 설정은 08시(오전 8시)입니다. 1.1.1 인터넷 속도에 따라 입력 오류가 날 수 있는 점을 보완했습니다. ​ 1.2.0 - 보안 키패드 입력 기능 비밀번호에 맞는 버튼을 순서대로 눌러 입력해줍니다. - html..

Python2021. 11. 30. 16:00[파이썬 모듈] 스케줄 모듈 schedule

파이썬 스케줄 모듈은 반복되는 코드를 정리할 때 제격인 모듈입니다. 먼저 스케줄 모듈을 설치해주세요. 윈도우 pip install schedule 리눅스 pip3 install schedule import schedule import time def job(): print("작업") # 할 일들 # 10초에 한번씩 실행 schedule.every(10).second.do(job) # 10분에 한번씩 실행 schedule.every(10).minutes.do(job) # 매 시간마다 실행 schedule.every().hour.do(job) # 10시간마다 실행 schedule.every(10).hour.do(job) # 매일 10:30에 실행 schedule.every().day.at("09:00").d..

리눅스 백그라운드 파이썬 실행하는 법
Python2021. 11. 29. 16:00리눅스 백그라운드 파이썬 실행하는 법

1. 파이썬 코드 백그라운드 실행 리눅스 창을 꺼도 코드가 종료되지 않음. nohup python -u /path/filename.py & 이 명령어는 파이썬 코드를 백그라운드에서 실행하는 명령어입니다. 출력문들은 같은 폴더의 nohup.out 파일에 저장됩니다. 2. 파이썬 코드 출력문 보기 tail -f nohup.out 이 명령어는 파이썬 코드를 실행하면서 나오는 출력문들을 라이브로 보여주는 코드입니다. Ctrl + C로 라이브 시청을 나갈 수 있습니다. 3. 실행 중인 프로그램 보기 ps -ef | grep filename.py 실행 중인 프로그램들을 보여줍니다. 4. 실행 중인 코드 종료 kill [실행 넘버] 실행중인 프로그램을 종료합니다. 여기서 'grep --color=auto 파일명.py..

[백준 2217] 로프 해설 및 풀이 (파이썬)
Python2021. 11. 27. 16:00[백준 2217] 로프 해설 및 풀이 (파이썬)

백준 알고리즘 2217번 | 로프 https://www.acmicpc.net/problem/2217 문제 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 여러 개의 로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을 나눌 수 있다. k개의 로프를 사용하여 중량이 w인 물체를 들어올릴 때, 각각의 로프에는 모두 고르게 w/k 만큼의 중량이 걸리게 된다. 각 로프들에 대한 정보가 주어졌을 때, 이 로프들을 이용하여 들어올릴 수 있는 물체의 최대 중량을 구해내는 프로그램을 작성하시오. 모든 로프를 사용해야 할 필요는 없으며, 임의로 몇 개의 로프를..

반응형
image