목록전체 글 (64)
정글에서 온 개발자
단축키 (Ctrl+Shift+B) 만 눌러서 미리 셋팅한 stdin으로 내 go 코드를 테스트해 볼 수 있는 환경을 구성하려고 한다.먼저 위 그림과 같이 디렉토리를 구성한다. go.mod는 아무 모듈 이름으로나 아래 명령어를 실행해서 생성한다.go mod init [모듈명]solve.go 파일 이름은 아무거로나 바꿔도 된다. (저는 보통 백준 문제 번호로 맞춤)launch.json{ "version": "0.2.0", "configurations": [ { "name": "Launch Program", "type": "go", "request": "launch", "mode": "auto", "program": ..
코드from collections import Counterimport mathdef solution(clothes): c = Counter(x[1] for x in clothes) product = math.prod(c[p]+1 for p in c) return product-1메인 아이디어는 각 파츠별로 안입은 것까지 포함해서 조합으로 경우의 수를 센 후, 하나도 안 입은 경우 1가지를 빼주는 것이다.count만 할 거라 hash count 특화 객체인 Counter를 활용했다.math.prod가 sum 처럼 iterable의 곱셈을 해줘서 활용했다.배운것들counter.values()counter의 값들을 가공할 필요 없이 바로 쓸 수 있다면, 이 속성을 활용해도 좋겠다.functo..
코드def solution(phone_book): book = set(phone_book) for num in phone_book: for i in range(1,len(num)): check = num[:i] if(check in book): return False return True입력:전화번호 수 1~1,000,000각 전화번호 길이 1~20접근만약 모든 숫자에 대해서 서로 비교를 하면 N^2이 나온다. 1e12가 되면서 백준 기준 1만 초 정도 걸릴 것 같다.문제 유형이 해싱이니, 해싱을 이용해야할 것 같은데 각 전화번호의 프리픽스를 해싱하는 것보다는 전화번호 자체를 해싱하면 좋을 것 같다.그럼 해싱한..