백준
-
백준 11650번 어떻게 풀었나. lambda 사용백준 2023. 1. 9. 00:01
푼 방법 백준 1181번과 비슷한 문제여서 그대로 품 백준 1181번 풀이 : https://developer-commit.tistory.com/46 코드 import sys N = int(sys.stdin.readline()) A = [list(map(int, sys.stdin.readline().rstrip().split())) for _ in range(N)] A.sort(key=lambda x : (x[0], x[1])) for i in A: print(i[0], i[1])
-
백준 1181번 어떻게 풀었나. join(), lambda, sort(), set() 설명백준 2023. 1. 8. 00:01
푼 방법 내장함수 sort()와 set()을 사용함 좋았던점 원하는 동작을 하는 함수를 생각하고, 그 함수를 내장함수에서 찾았다. 고치면 좋을 부분 내장함수를 더 알고 있었으면 더 빨리 풀 수 있을거 같다. 새롭게 안 내용 set() 중복 제거 sort() 완벽하게 .sort(key=원하는 함수) 로 정렬 기준을 새울 수 있다. key가 여러개일때 튜플형식으로 key = lambda x: (x[0] , x[2]) lambda식을 세워주면 된다. 그리고 내림차순으로 하고 싶다면 마이너스 부호를 붙여주면 된다. key= lambda x: (-x[0], x[2]) '구분자'.join(리스트) '_'.join(['a', 'b', 'c']) == "a_b_c" # = True lambda 사용법 : lambda ..
-
백준 1406번 어떻게 풀었나. 파이썬 내장함수 시간복잡도 정리백준 2023. 1. 6. 00:01
푼 방법 처음엔 insert와 del을 사용하였다. 그랬더니 시간초과가 나왔다. 왜 그린지 못찾겠어서 구글링했다. insert와 del은 시간복잡도가 O(n)이다. 사용을 지양하는 것이 좋다. 구글링을 한 결과, 스택을 두개 사용하여 풀 수 있었다. 고치면 좋을 부분 파이썬의 내장함수의 시간복잡도를 잘 알아야 겠다. 걸리는 시간을 고려하지 않고 작성했다. 계획하기 단계를 좀 더 체계적으로 해야 될거 같다 .readline().strip() 보다 .readline().rstrip()이 더 빠를거 같다. 파이썬 내장함수 시간복잡도 정리 https://wayhome25.github.io/python/2017/06/14/time-complexity/ 코드 import sys stackLeft = list(sys..
-
백준 10828번 어떻게 풀었나, 스택(Stack) 구현백준 2023. 1. 5. 00:01
푼 방법 문제에 적혀있는 데로 구현 해 주었다.. 더 알고 싶은 부분 한줄에 조건문 쓰는 법 if 아래 두 코드는 똑같다. if animal is dog: ret = dog if animal is dog: ret = dog if - else 결과 = A if 조건 else B if - elif - else 결과 = A if 조건 else B if 조건 else C 코드 import sys N = int(sys.stdin.readline()) stack = [] for i in range(N): cmd = sys.stdin.readline().strip() # push X: 정수 X를 스택에 넣는 연산이다. if "push" in cmd: stack.append(cmd[5:]) # pop: 스택에서 가장 ..
-
백준 10815번 어떻게 풀었나백준 2023. 1. 2. 00:01
푼 방법 1920번 문제와 굉장히 유사하여 코드를 출력문만 바꿔서 복붙했다. 좋았던점 비슷한 문제가 생각났다. 코드 import sys # N입력받기 N = int(input()) # 리스트 입력받기 A = list(map(int, sys.stdin.readline().split())) # M 입력받기 M = int(input()) # 리스트 입력받기 cheaklist = list(map(int, sys.stdin.readline().split())) A.sort() #이진검색 for k in range(M): left = 0 right = N-1 while True: middle = (left + right) // 2 if cheaklist[k] == A[middle]: print(1, end=" ")..
-
백준 10866번 어떻게 풀었나, 덱(Deque) 구현백준 2022. 12. 31. 12:54
코드 import sys N = int(sys.stdin.readline()) stack = [] for i in range(N): cmd = sys.stdin.readline().strip() # push_front X: 정수 X를 덱의 앞에 넣는다. if "push_front" in cmd: stack.insert(0, cmd[11:]) # push_back X: 정수 X를 덱의 뒤에 넣는다. if "push_back" in cmd: stack.append(cmd[10:]) # pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. elif cmd == "pop_front": print(stack.pop(0) if stac..