문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/59035 NAME, DATETIME 열을 가져오고 ANIMAL_ID을 내림차순으로 정렬합니다. SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC; 결과
문제 링크 https://programmers.co.kr/learn/courses/30/lessons/59034 모든 동물 정보를 ANIMAL_ID 순서(오름차 순)로 출력하는 문제입니다. SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID ASC 테이블이 이미 오름차순으로 정렬되어 있기 때문에 2번째 줄은 적지 않아도 상관없습니다. 결과
SELECT에서 자주 사용하는 문법들 SELECT 가져올 열 [, 가져올 열] .. [FROM 가져올 테이블] [WHERE 검색 조건] [GROUP BY {행 이름 | 열 | 위치} ] [HAVING 검색 조건] [ORDER BY {행 이름 | 열 | 위치} [ASC | DESC]] [LIMIT {[offset, ] row_count | row_count OFFSET offset}] ~에 대하여는 아래 문제들을 전부 풀고 다시 보시는 것을 추천합니다. SELECT FROM 문은 다음과 같이 사용할 수 있습니다. 테이블에서 필요로 하는 열만 가져오는 기능 * 을 적으면 모든 열을 가져옵니다. 열 이름을 적은 순서대로 가져옵니다. (구분은 (,)콤마로) 예제 문제 : 모든 레코드 조회하기, 동물의 아이디와 ..
이번에도 작년, 재작년과 자소서 질문이 같았어요. 14기를 준비하시는 분들은 다음에 대해 한번 답해보면 도움이 많이 될 것이라고 생각합니다. 제 경험은 예시로만 생각해주세요. 최대한 참고는 많이 되지만 지원자분들의 개성을 잃지 않을 수 있도록 작성했습니다. 지금 14기 준비 오픈채팅방도 있으니 진행되는 스터디에 참여하는 것도 도움이 많이 될듯합니다. [자기소개1] 소프트웨어분야 전문성을 키우기 위해 남들과 달리 특별한 노력을 한 경험을 서술하여 주시기 바랍니다. [자기소개2] 귀하의 장래희망을 서술하여 주시기 바랍니다. [연수계획서 1] 귀하께서는 2022년도 「SW마에스트로」 과정에서 동료 연수생들과 협력하여 새로운 프로젝트를 완성하여야 합니다. 어떤 능력을 갖춘 연수생들과 어떠한 프로젝트를 어떻게 수..
소마에서는 문제 유형을 공개하기 않기 때문에 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..
파이썬 코딩 테스트에서 자주 사용되는 데큐(deque)입니다. from collections import deque 이렇게 불러올 수 있습니다. deque를 사용하면 얻는 장점 엄격한 리스트를 만들 수 있다. 속도가 리스트에 비해 굉장히 빠르다. List = O(n), deque = O(1) 당연하지만 큐작업이 훨씬 편해진다. 큐(QUEUE)에 대한 이해. 큐는 기본적으로 선입 선출 (FIFO : First In First Out)구조입니다. 예시로는 다음이 있습니다. 프린터기 : 프린터기는 먼저 인쇄를 누른 것부터 차례대로 작동합니다. 은행 대기표 : 은행에서는 먼저 대기표를 뽑은 사람부터 차례대로 서비스를 진행합니다. deque 함수는 큐에 제한되어 있는 선입선출 제한을 풀어서, 더 여러곳에 사용할 ..
백준 알고리즘 2108 | 통계학 https://www.acmicpc.net/problem/2108 최근에 구현 문제를 풀기 시작했는데, 재미있네요 ㅋㅋ 산술평균 : N개의 수들의 합을 N으로 나눈 값 (반올림) 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 입력된 값을 다음과 같이 출력해야하는 문제입니다. 시간초과 이 문제가 시간 초과가 뜬다면, 다음을 확인해주세요. 1. sys.stdin.readline()을 사용하는가? input보다 속도면에서 확연한 차이를 보입니다. readline으로 입력을 받으세요. 2. 시간 복잡도가 높은가? 아마도 최빈값에서 시간 복잡도가 높아..
파이썬에는 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 이상의 숫자는 올림을 하는 반올림이죠! 반올림의 종류에 관해서는 이 문서를 읽어주세요. 사사오입의 반올림을 구현하는 방법..
백준은 입력값을 받아서 문제를 푸는 구조입니다. input() import sys sys.stdin.readline() 이 둘은 기능상으로는 큰 차이가 없지만, 속도 차이가 큽니다. 그래서 input으로 작업한 코드가 시간 초과가 났을 때, sys 입력으로 변경해주면 정답처리가 될 확률이 큽니다. 다만, 적혀있는 input들을 전부 변경하기에는 굉장히 귀찮은 작업인데요. 여기서 팁 하나, import sys input = sys.stdin.readline 을 코드 제일 위에 추가한다면, input이 sys.stdin.readline의 속도를 갖습니다.
파이썬에서 리스트를 생성할 때는 다음과 같은 방법이 있다. 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, ..
원본 링크 : 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번 | 행렬 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..
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..
오늘은 효율성 있는 코드를 짤때 자주 사용되는 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 ..
개발 날짜 : 2021.03.31 ~ 리눅스 서버에서 돌아가는 코드입니다. 권장 사항 : 이 프로그램은 코로나 19 자가진단을 무증상으로 제출하는 프로그램입니다. 증상이 있을 시 스스로 해당하는 증상에 유증상으로 체크하시기 바랍니다. 프로젝트 관련 추천글 리눅스 서버 무료로 만들기 리눅스 백그라운드 실행 리눅스 파이썬 모듈 설치 리눅스 설치 필요 모듈 schedule selenium selenium-webdriver 개발 일지 1.1.0 이제 원하는 시간에 자가진단을 진행할 수 있습니다. 기본 설정은 08시(오전 8시)입니다. 1.1.1 인터넷 속도에 따라 입력 오류가 날 수 있는 점을 보완했습니다. 1.2.0 - 보안 키패드 입력 기능 비밀번호에 맞는 버튼을 순서대로 눌러 입력해줍니다. - html..
파이썬 스케줄 모듈은 반복되는 코드를 정리할 때 제격인 모듈입니다. 먼저 스케줄 모듈을 설치해주세요. 윈도우 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..
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번 | 로프 https://www.acmicpc.net/problem/2217 문제 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 여러 개의 로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을 나눌 수 있다. k개의 로프를 사용하여 중량이 w인 물체를 들어올릴 때, 각각의 로프에는 모두 고르게 w/k 만큼의 중량이 걸리게 된다. 각 로프들에 대한 정보가 주어졌을 때, 이 로프들을 이용하여 들어올릴 수 있는 물체의 최대 중량을 구해내는 프로그램을 작성하시오. 모든 로프를 사용해야 할 필요는 없으며, 임의로 몇 개의 로프를..
백준 알고리즘 1541번 | 잃어버린 괄호 https://www.acmicpc.net/problem/1541 문제 세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다. 그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다. 괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오. 입력 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다. 출력 첫째 줄에 정답을 출력한다...
백준 알고리즘 2839번 | 설탕 배달 https://www.acmicpc.net/problem/2839 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 ..