https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에서 문자열은 제일 앞부터 정해진 길이만큼 잘라야 합니다.라는 조건 덕분에 쉽게 해결할 수 있었다. 아이디어 1. 문자열 일정 단위로 자르기 파이썬에 있는 리스트 슬라이싱을 활용하면 쉽게 해결 가능. 자르는 단위를 문자열 길이의 절반 이상이 되면 반복되는 것이 불가능하다. 따라서 자르는 단위는 주어진 문자열 길이의 절반까지 설정한다. 2. 자른 단위에 맞춰 문자열 압축 for문을 활용하여 반복..
외국국적 불행사 서약을 위해, 유효한 미국 여권이 필요해서 첫 성인 미국 여권을 발급했다. 나와 같이 성인 여권(만 16세 이상)을 처음 발급하는 사람들 중 만료된 미국 여권이 없는 사람들에게 조금 도움이 되고자 글을 작성했다. 대사관 방문 전 서류 준비 https://kr.usembassy.gov/ko/services-adult-passport-applicants-age-16-and-over-ko/ 성인 여권 (만 16세 이상) DS-82 혹은 DS-5504의 여권신청서를 작성해야 하는 신청자의 경우, 여권 신청은 일양 택배로만 접수 가능합니다. (DS-82: 성인 여권 갱신 신청서, DS-5504: 여권의 잘못된 정보 정정, 여권 발급 1년이내 kr.usembassy.gov 서류 준비는 위 사이트를 ..
원하는 위치에 커서를 새로 만들어서 커서를 여러 개로 한 번에 코드를 적는 방법이 있다. 맥북은 option키, 윈도우는 alt키를 누르고 커서를 추가하고 싶은 부분을 클릭하면 커서가 추가된다. option + Click, Alt + Click 세로 방향으로 커서 개수 늘리기 맥북은 option + command, 원도우는 Ctrl + Alt 키를 누른 상태에서 위, 아래 방향 화살표를 누르면 커서가 추가된다. option + command + (↑ or ↓), Ctrl + Alt + (↑ or ↓) 같은 단어 선택해서 커서 개수 늘리기 1. 변경할 단어를 선택하고(드래그) 2. 맥북은 command + shift + L, 윈도우는 Ctrl + Shift + L을 누르면 선택한 단어와 같은 단어가 전부 ..
https://www.acmicpc.net/problem/14938 14938번: 서강그라운드 예은이는 요즘 가장 인기가 있는 게임 서강그라운드를 즐기고 있다. 서강그라운드는 여러 지역중 하나의 지역에 낙하산을 타고 낙하하여, 그 지역에 떨어져 있는 아이템들을 이용해 서바이벌을 www.acmicpc.net 조건만 잘 생각하면 되는 착한 문제. 아이디어 1. 다익스트라 출발지로 부터 최단거리를 계산해서 수색 범위안에 들어가는지 확인하면 된다. 수색 범위안에 들어오면 아이템 개수를 더해주면 된다. 1 ~ n까지 for문으로 출발지를 바꾸면서 탐색하면 된다. 2. 플로이드 워셜 지역의 개수(100)가 적으므로 플로이드 워셜로 풀어도 시간초과에 걸리지 않는다. 전체 코드 다익스트라 import heapq imp..
https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 구간 합 구하기 2차원 버전 아이디어 1. 누적 합 사용 구간 합 구하기 4와 유사하게 풀었다 먼저 (0 ,0)에서 (x , y)까지의 합을 arr [x][y]에 저장한다. 그럼 아래와 같은 리스트를 만들 수 있다. 이걸 사용해서 구간 합을 구하면 된다. 예를 들어 (1, 1)에서 (2, 3)까지 구하려면(문제에서는 2,2 ~ 3,4) arr [2][3]..
https://www.acmicpc.net/problem/10942 10942번: 팰린드롬? 총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다. www.acmicpc.net 배열에서 i부터 j까지가 팰린드롬인지 아닌지 여러 번 확인하는 문제. 아이디어 1. dp 간단하게 리스트 슬라이싱으로는 시간 초과가 나서 dp를 사용 i번째부터 j까지의 수가 팰린드롬인지 확인한 결과를 저장하기 위해 이차원 리스트를 사용하기로 결정했다. 2. 점화식 먼저 무조건 팰린드롬인 i부터 i까지의 수는 1로 저장해둔다. 그리고 i번째 수와 i + 1번째 수가 같으면 팰린드롬이니까 이것도 1로 저장. 점화식은 이미 팰린드롬인 수 ..
바이트 코드란? 바이트 코드(Byte code)는 고급 언어로 작성된 소스 코드를 가상머신 이 이해할 수 있는 중간 코드로 컴파일한 것을 말한다. 아래 코드는 else와 elif 의 시간차를 확인하기 위해 dis 모듈을 사용함. import dis def Func_else(n): if n % 2 == 0: return True else: return False def Func_elif(n): if n % 2 == 0: return True elif n % 2 == 1: return False dis.dis(Func_else) print('--------------------------------------------------') dis.dis(Func_elif) 결과: 4 0 LOAD_FAST 0 (n..
import time import random arr = [] for _ in range(100000): arr.append(random.randint(1,10000)) start_time = time.time() # 측정 시작 arr.sort() end_time = time.time() # 측정 끝 print('time:',end_time - start_time) 출력: time: 0.012936830520629883 단위는 초