Dev/PS

Dev/PS

[PS] 14233 보석 도둑

🍒 문제희대의 도둑 효빈이는 세계 최고의 보석가게 영선상에 잠입할 계획이다. 이 영선상은 최고의 보석가게답게 최고의 보안장치를 두고 있는데, 이 보안장치를 해제하지 않는다면 보석을 여러 개 훔쳐갈 시, 보석끼리 달라붙으며 무게가 모든 보석들의 곱으로 늘어난다.효빈이는 이 보안장치를 해제할 수 없기 때문에, 차라리 곱해진 대로 최대한 많은 보석들을 가져오기로 계획했다. 효빈이는 한번에 k라는 무게를 들 수 있으므로, 딱 k만큼의 무게만큼의 보석을 가져오고 싶은데, 그 때 보석들의 최대 개수를 알고싶다.영선상에는 세계 최고의 보석가게답게 모든 무게의 보석들이 매우 많이때문에, 훔쳐가는 보석이 부족할 일은 없다. 다만 모든 보석들은 무게가 1보다 크다.효빈이는 이제 영선상에 잡입할 계획을 다 세웠다. 하지만..

Dev/PS

[PS] 1090 체커

🍒 문제N개의 체커가 엄청 큰 보드 위에 있다. i번 체커는 (xi, yi)에 있다. 같은 칸에 여러 체커가 있을 수도 있다. 체커를 한 번 움직이는 것은 그 체커를 위, 왼쪽, 오른쪽, 아래 중의 한 방향으로 한 칸 움직이는 것이다.입력첫째 줄에 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 각 체커의 x좌표와 y좌표가 주어진다. 이 값은 1,000,000보다 작거나 같은 자연수이다.출력첫째 줄에 수 N개를 출력한다. k번째 수는 적어도 k개의 체커가 같은 칸에 모이도록 체커를 이동해야 하는 최소 횟수이다.✅ 내 답answer 선언 시 주어진 조건에서 가장 큰 거리의 값으로 초기화주어진 좌표값(x, y) 중 한 점까지의 거리를 계산하여 sorting작은 값부터 더해가..

Dev/PS

[PS] 1764 듣보잡

🍒 문제김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오.입력첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 알파벳 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M은 500,000 이하의 자연수이다.듣도 못한 사람의 명단에는 중복되는 이름이 없으며, 보도 못한 사람의 명단도 마찬가지이다.출력듣보잡의 수와 그 명단을 사전순으로 출력한다. ✅ 내 답- Counter 사용해서 교집합 추출- set 변환하여 key만 출력- set 변환 후 sort..

Dev/PS

[PS] 11723 집합

🍒 문제 비어있는 공집합 S가 주어졌을 때, 아래 연산을 수행하는 프로그램을 작성하시오.add x: S에 x를 추가한다. (1 ≤ x ≤ 20) S에 x가 이미 있는 경우에는 연산을 무시한다.remove x: S에서 x를 제거한다. (1 ≤ x ≤ 20) S에 x가 없는 경우에는 연산을 무시한다.check x: S에 x가 있으면 1을, 없으면 0을 출력한다. (1 ≤ x ≤ 20)toggle x: S에 x가 있으면 x를 제거하고, 없으면 x를 추가한다. (1 ≤ x ≤ 20)all: S를 {1, 2, ..., 20} 으로 바꾼다.empty: S를 공집합으로 바꾼다.입력첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다.둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 ..

Dev/PS

[Python] 미세 팁

🌱 별도 게시글로 작성하기엔 너무 사소한 팁들 ✅ 나누기에서 몫을 정수로 반환하는 법 # 나누기(/)를 두 번 써준다. >> 5//3 1 # cf. 한 번만 쓰는 경우 >> 5/3 1.6666666666666667 >> 6/3 2.0 ✅ 파이썬 프로그램 종료 # 특정 조건을 만족할 경우 프로그램이 종료되어야 할 때 # function이 아닌 경우 return으로 종료시킬 수 없다. >> exit() ✅ 공백으로 구분된 여러 개의 값을 정수로 받고 싶을 때 # map, split을 사용한다. a, b = map(int, input().split() >> 5 3 #a = 5, b = 3 # 공백으로 구분된 배열로 받을 경우 list를 사용한다. num_list = list(map(int, input().sp..

Dev/PS

[Python] 아스키 코드(ASCII) ↔️ 문자 변환

✅ 아스키 코드 → 문자 chr() >>> chr(65) A >>> ord(97) a ✅ 문자 → 아스키 코드 ord() >>> ord('A') 65 >>> ord('a') 97 💡 참고. ASCII Table 출처 : ASCII Table

Dev/PS

[Python] 거듭 제곱

✅ ** 연산자 사용 # a의 b제곱 a**b # 예시 3**3 # 27 2**5 # 32 10**2 # 100 ✅ pow 함수 사용 # a의 b제곱 pow(a, b) # 예시 pow(3, 3) # 27 pow(2, 5) # 32 pow(10, 2) # 100

Dev/PS

[Python] deque 양방향큐, 덱

✅ Deque #deque 생성 from collections import deque dq = deque() #stack 구현 -- 마지막 원소 입출력 dq.pop() dq.append(value) #queue 구현 dq.pop(value) #오른쪽(마지막) 출력 dq.popleft(value) #왼쪽(처음) 출력 dq.append(value) #오른쪽(마지막) 입력 dq.appendleft(value) #왼쪽(처음) 입력 #deque 확장 dq.extend('hey') #오른쪽(마지막) 확장 dq.extendleft('hey') #왼쪽(처음) 확장 #list처럼 사용 dq[2] = 'h' #index 활용한 수정 dq.insert(2, 'h') #index 활용한 입력 dq.remove('h') #'h..

/* a piece of dev */
'Dev/PS' 카테고리의 글 목록