
1. 전화번호부 목록 https://programmers.co.kr/learn/courses/30/lessons/42577 더보기 def solution(phone_book): p_set=set() len_s=set() phone_book.sort(key=len) for phone in phone_book: for l in len_s: if phone[:l] in p_set: return False p_set.add(phone) len_s.add(len(phone)) return True #난 set을 이용해 풀었지만, 문자열의 startswith를 쓰는 방법과 문자열의 한글자씩 늘려가며 해쉬에 있는지 확인하는 방법도 있다 2. 멀쩡한 사각형 https://programmers.co.kr/learn/co..

1. 더 맵게 https://programmers.co.kr/learn/courses/30/lessons/42626 더보기 import heapq #최소값 두 값을 빼서 새로운 값을 넣고 다시 최소값을 ...=>힙 사용하기!! def solution(scoville, K): count=0 scoville.sort() while len(scoville)>1: smin=heapq.heappop(scoville) #heappop원리 : 제일 첫 원소가 min이므로 첫 원소를 꺼냄 if smin>=K: #따라서 첫원소가 최소값이 아닌 리스트를 heappop하면 xx => heapify를 하든지 sort()를 하고 pop인자로 넘겨줘야 함 return count smin2=heapq.heappop(scoville..
datetime.strptime() : 문자열 -> datetime 객체로 변환하여 리턴 형식 => datetime.strptime(문자열, 'format codes') from datetime import datetime datetime.strptime(date_time_str, '%Y-%m-%d %H:%M:%S') # == 2022-01-21 08:57:00 datetime의 메서드 timestamp() : 날짜+시간 정보를 실수로 표현 Foramt Code 리스트 표시 의미 Example %a 요일 - 축약 Sun, Mon, ... %A 요일 - full이름 Sunday, Monday, ... %w 요일 - 숫자로 표현 0, 1, ..., 6 %d 일(두자릿 수로 통일) 01, 02, ..., 31..
출처 : https://wikidocs.net/4308, http://pythonstudy.xyz/python/article/401-%EC%A0%95%EA%B7%9C-%ED%91%9C%ED%98%84%EC%8B%9D-Regex re 모듈의 compile 함수 : 정규식 패턴을 입력으로 받아들여 정규식 객체를 리턴하는데, 즉 re.compile(검색할문자열) 와 같이 함수를 호출하면 정규식 객체를 리턴 다양한 정규식 패턴 표현패턴설명 예제 ^ 이 패턴으로 시작해야 함 ^abc : abc로 시작해야 함 (abcd, abc12 등) $ 이 패턴으로 종료되어야 함 xyz$ : xyz로 종료되어야 함 (123xyz, strxyz 등) [문자들] 문자들 중에 하나이어야 함. 가능한 문자들의 집합을 정의함. [Pp]..

1. 최대공약수와 최소공배수 https://programmers.co.kr/learn/courses/30/lessons/12940 더보기 코드보기 def solution(n, m): #최대공약수 a,b=n,m while m: #작은수가 0이 될때까지 if n>m: n,m=m,n n,m=n,m%n #작은수, 큰수%작은수 return [n,a*b//n] #최소공배수=두수의 곱/최대공약수 2. 자연수 뒤집어 배열만들기 https://programmers.co.kr/learn/courses/30/lessons/12932 더보기 더보기 더보기 def solution(n): return list(map(int,str(n)[::-1])) # 마지막을 list로 해야 함, a,b=map(int,input().split..
알고리즘 참고) 파이썬의 리스트는 기본적으로 단방향 연결리스트로 제공됨. * self/head는 data,next를 가지고 있음 * x=Node(10) 이면 x는 Node의 주소를 가리키게 되는 것임.
https://youtu.be/kWiCuklohdY 유튜브 나도코딩님의 파이썬 코딩 무료 강의 (기본편) - 6시간 뒤면 여러분도 개발자가 될 수 있어요 [나도코딩]을 보고 정리한 것 이전에 배웠던 언어들과 동일한 부분들은 생략하고 새롭게 배운 부분들만 기록 8:37:00 with까지 들음 주석 한줄 : # 여러줄 : '''~''' 혹은 드래그 후 ctrl+/ 줄바꿔서 코드 이어가기 -> \후에 줄바꾸면 됨 간단출력 print("ㅋ"*9) => ㅋㅋㅋㅋㅋㅋㅋㅋㅋ print('나비') print(True) / print(not True) Print(“문자열”,End=” “) => print를 끝날 때 줄바꿈이 아닌 띄어쓰기로 끝난다는 말 %를 그대로 출력 => %% %.3f => 소수점 이하 넷 째 자리에..
대표자연수(2548) https://www.acmicpc.net/problem/2548 import sys N=int(input()) nums=list(map(int,sys.stdin.readline().split())) nums.sort() print(nums[N//2-1]) if N%2==0 else print(nums[N//2]) #-_-.. #차이가 가장 적은.. => 중앙값 #중앙값인건 ㅇㅇ 진즉 알았는데 보통 중앙값은 개수가 짝수일땐 중간 두개 값의 평균인데 여기는 리슽트 안에서 대표를 뽑는거니 걍 중간 두개값 중 먼저 나오는 값이 중앙값 ㅇㅅㅇ #문제를 잘못 이해해서 몇번을 틀렸는지 원.. 결국 구글링으로 도움을 받았다고 한다 쩝쩝.. 한 줄로 서기(1138) https://www.acmic..
합구하기(11441) import sys N=int(input()) list_a=list(map(int,sys.stdin.readline().split())) M=int(input()) accums=[list_a[0]] for i in range(1,N): accums.append(accums[i-1]+list_a[i]) for _ in range(M): a,b=map(int,sys.stdin.readline().split()) print(accums[b-1]-accums[a-2]) if a>1 else print(accums[b-1]) #어제 마지막 문제와 동일. 이번엔 내장함수를 쓰지 않고 직접 누적합 리스트를 구현해보았다. 키로거(5397) import sys from collections impo..
Comment