반응형

python 23

[Python][백준][16931] 겉넓이 구하기 (구현)

🍋 문제링크 https://www.acmicpc.net/problem/16931 🍎 코드 제출 기록 (메모리 및 시간) 메모리 : 123532 KB 시간 : 132 ms 🍓 문제풀이 겉넓이를 구하기 위해서는 입체도형의 up, down, front, back, left, right 에서 보이는 사각형들의 합을 구하면 된다 up, down = N * M left, right = 1 ~ N 에서 맨 앞 블록 높이 + (j번째 블록높이 - (j-1)번째 블록높이) → 양수일때만 front, back = 1 ~ M 에서 맨 앞 블록 높이 + (i번째 블록높이 - (i-1)번째 블록높이) → 양수일때만 🍉 Code N, M = map(int, input().split()) arr = [list(map(int, in..

[Python][백준][11051] 이항 계수 2 (DP)

🍋 문제링크 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 🍎 코드 제출 기록 (메모리 및 시간) 메모리 : 204292 KB 시간 : 268 ms 🍓 문제풀이 k 가 0 일때! 빼먹지 않을 것!! 🍉 Code 재귀로 푸니까 시간초과남...ㅠ N, K = map(int, input().split()) def recursion(n, k): if n == k: return 1 if k == 1: return n return recursion(n-1, k-1) + recursion(n-1, k) print(recursion(N, K)) N, K = map(int, input().spl..

[Python][프로그래머스] Level 3 - 순위(그래프)

🍋 문제링크 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr 🍓 문제풀이 해당 문제는 BFS와 visited 를 사용해서 풀었습니다. 일단은, 매개변수로 들어오는 results 는 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 으로 보기 쉽지 않게 저장되어있기 때문에 아래와 같이 i 가 j 를 이겼다면 win의 의미로 arr[i][j] = 'w' i 가 j 에게 졌다면 lose 의 의미로 arr[i][j] = 'l' 아무 승패관계가 없는 칸은 nothing의 의미로 arr[i][j] = 'n'으로 2차원 배열 새롭게 저장하였습니다. 그 후 arr[i][j] 를 돌면서 각 칸이 자기 자신과의..

[삼성/코테기출][Python][백준][20058] 마법사 상어와 파이어스톰 (시뮬레이션/구현)

🍋 문제링크 20058번: 마법사 상어와 파이어스톰 마법사 상어는 파이어볼과 토네이도를 조합해 파이어스톰을 시전할 수 있다. 오늘은 파이어스톰을 크기가 2N × 2N인 격자로 나누어진 얼음판에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c www.acmicpc.net 🍎 코드 제출 기록 (메모리 및 시간) 메모리 : 297264 KB 시간 : 1400 ms 🥝 메모 1. 깊은 복사와 얕은 복사 ice 의 배열을 tmp에 그대로 복사하기 위해서 tmp = ice 를 하면 얕은 복사를 하기 때문에 ice 배열의 원소를 변경하면 tmp 배열의 원소도 같이 변하기 때문에 tmp의 역할을 제대로 수행 할 수 없다. 따라서, import copy tmp = **copy.deepcopy**(ice) 위와 같..

[삼성/코테기출][Python][백준][20057] 마법사 상어와 토네이도 (시뮬레이션/구현)

🍋 문제링크 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net 🍎 코드 제출 기록 (메모리 및 시간) 메모리 : 160596 KB 시간 : 344 ms 🥝 메모 골드 4 체감 쉬운 문제 구현보다 이해하는 시간이 더 오래걸리는 문제 🍓 문제풀이 1. 토네이도가 도는 순서 2. 토네이도의 방향에 따른 모래 이동 dr, dc 🍉 Code dr=[] dc=[] sand=[] def fill_sand(): for i in range(N): sand.append(list(map(int, in..

[삼성/코테기출][Python][백준][20056] 마법사 상어와 파이어볼 (시뮬레이션/구현)

🍋 문제링크 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 🍎 코드 제출 기록 (메모리 및 시간) 메모리 : 151888 KB 시간 : 2488 ms 🥝 메모 구현은 다소 쉬웠으나 시간초과 때문에 오래 걸린 문제 🍓 문제풀이 1. 방향원소 방향이 0~7까지 항상 고정되어 있으므로 dc = [0, 1, 1, 1, 0, -1, -1, -1] dr = [-1, -1, 0, 1, 1, 1, 0, -1] → 방향원소의 0, 1, 2, 3, 4, 5, 6, 7 번째 c, r 좌표의..

[Python] 2차원 배열 입력받기

안녕하세요! daily_D 입니다! 👩🏻‍💻 오늘은 Python 으로 2차원 배열 입력받는 방법에 대해 공부해봐요! 파이썬에서 2차원 배열을 입력받는 방법은 3가지가 있습니다. 아래의 그림과 같이, 가로 A, 세로 B 길이의 배열을 선언한다고 가정해 봅시다! 참고로, 3가지 경우는 모두 배열의 세로(B) 의 크기를 아는 경우에만 사용할 수 있습니다. 1. 원소 하나씩 입력받기 arr = [for _ in range(B)] // 2차원 배열의 가로길이 : B for i in range(B): arr[i] = list(map(int, input().split())) input, split, map, list 에 대한 이해가 잘 되지 않는다면 [Python] 1차원 배열 입력받기 를 참고해주세요 2. 원소에 ..

➰ Library/Python 2021.03.31

[Python] 1차원 배열 입력받기

안녕하세요! daily_D 입니다! 👩🏻‍💻 오늘은 Python 으로 1차원 배열 입력받는 방법에 대해 공부해봐요! 1. 띄어쓰기 간격으로 들어올 때 입력이 아래와 같다면, 한 줄을 한번에 입력받아 배열로 만드는 방식을 사용할 수 있습니다. 1 2 3 4 5 arr = list(map(int, input().split())) 코드에 대한 상세 설명은 아래와 같습니다. input() : 키보드를 통해 문자열을 입력받는다 (enter 입력전까지를 한줄로 판단) split() : 문자열을 띄어쓰기를 기준으로 나눈다 map(int, 리스트A) : 리스트A 의 모든 요소를 int 로 변환 list() : map 의 결과를 배열로 반환 2. Enter 간격으로 들어올 때 이 경우는 입력되는 줄의 수..

➰ Library/Python 2021.03.29