본문 바로가기

파이썬35

[python 구름] 제곱 암호 입력된 문자열을 가지고 암호화를 하는 문제이다. 📜 접근 방법 문자열의 갯수만큼 반복한다. 문자 다음 수를 제곱시킨다. 아스키 코드를 이용하여 암호화를 시킨다 ❌ 실패 코드 만약 change_c가 ord('z')보다 두배 이상 클 경우 값이 다르게 나오는 것을 생각못했다. import sys input = sys.stdin.readline n = int(input()) user_input = input() res = '' i = 0 while i ord('z'): change_c -= ord('z') change_c +.. 2023. 5. 13.
Array(배열)과 List(리스트) 차이 Array (배열) 특징 메모리 상에 데이터가 연속적으로 저장된다 같은 성질을 갖는 항목들의 집합 크기가 고정적이다. 랜덤 접근이 가능하다. 장점 인덱스가 있어 탐색의 경우 시간 복잡도는 O(1)이다. 단점 맨 앞이나 중간에 삽입이나 삭제시 그 뒤(오른쪽)에 있는 값들을 한쪽으로 한칸씩 옮겨야 하기 때문에 시간복잡도는 O(n)이다. (삭제나 삽입시 재배열이 필요하다) 배열 생성시 크기를 정해야하며, 추후에 변경하기 힘들다 배열을 사용할 때 읽기가 빈번하게 일어나는 경우 List (리스트) 특징 메모리 상에 데이터가 비연속적으로 저장된다. 크기가 가변적이다. 장점 메모리 공간을 미리 확보할 필요가 없다. 단점 읽기 시 시간 복잡도는 O(n)이다 리스트를 사용할 때 삽입과 삭제가 빈번하게 일어날 경우 추가적.. 2023. 5. 13.
[python 구름] 폭탄 구현하기 📜 접근 방법 인접하는 좌표 즉, 상하좌우를 계산하는 배열을 만든다 (dx, dy) 리스트로 현재 주어진 땅덩어리?를 만든다 ground 주어지는 값이 k 만큼이므로 k번 반복한다. 입력 받은 x, y에 대해 ground[x][y] 위치에 + 1 해준다. 상하좌우를 확인하여 유효할 경우 +1을 해준다. ground에 주어진 숫자들을 더한다. ❌ 실패 코드 x와 y에 -1씩 해주는 것을 처음에 하지 않았다. ✅ 정답 코드 # from pprint import pprint import sys input = sys.stdin.readline # 상하좌우 dx = [0, 1, 0, -1] dy = [1, 0, -1, 0] n, k = map(int, input().split()) ground = [([0] * .. 2023. 5. 11.
[python 구름] 0커플 📜 접근 방법 짝수인 n이 주어지며, n만큼 숫자가 들어오는데 짝이 아닐 경우 그 숫자를 더해야한다. 짝일 경우는 두 수를 더했을 시 0이 되어야한다. 우선순위 큐를 사용했고, 두 수를 더했을 때 0이면 결국 -k 와 k를 더했을 경우 0이 되기에 2개의 힙을 사용했다. (양수 넣는 힙과 음수 넣는 힙) 입력받은 숫자들을 2개의 힙중 하나의 힙에 구분하여 넣는다. 두개의 힙중 하나라도 비어지면 반복문 종료한다. 짝이 아닐 경우 둘중 절대값이 작은 수를 res에 넣는다. (res는 짝이 없는 수들의 리스트) / 반복 반복문이 종료되면 힙에 남는 값들을 전부 res에 넣어준다. res에 들어간 값들의 합을 출력 ✅ 정답 코드 from heapq import heappop, heappush import sys.. 2023. 5. 10.