반응형

분류 전체보기 148

[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] 를 돌면서 각 칸이 자기 자신과의..

[2021 상반기] 네이버 신입 공채 코딩테스트 후기

네이버 신입 공채 공고 시험 안내 네이버 신입공채는 서류를 먼저 제출하지만 자격요건에 적합하면 모두 코딩테스트를 볼 수 있습니다. 코딩테스트를 본 후, 코딩테스트 + 서류를 한번에 평가해 면접자가 정해집니다. 이에 저는 4월 12일전에 자소서를 제출하고 코딩테스트 관련 메일이 오기를 기다렸습니다. '온라인 코딩테스트 전형 상세 안내' 메일은 시험을 보기 3일전 안내받았고 다음날인 시험 2일전 목요일에 아래와 같은 코딩테스트 초대 메일을 받았습니다. 메일로 받은 링크를 들어가면 프로그래머스에서 화면공유 / 핸드폰 연결을 통해 시험환경을 미리 세팅해 볼 수 있습니다. 시험 유의사항 - A4와 필기도구 준비 - 중간에 화장실 등의 이유로 자리이탈 금지 - 중도퇴실은 가능 - 문제 유출 금지 시험 문제 - 4문..

[삼성/코테기출][Python][백준][14501] 퇴사 (완전탐색/DP)

🍋 문제링크 https://www.acmicpc.net/problem/14501 🍎 코드 제출 기록 (메모리 및 시간) 메모리 : 121220 KB 시간 : 112 ms 🍓 문제풀이 🍉 Code N = int(input()) time = [0 for _ in range(N)] pay = [0 for _ in range(N)] DP = [0 for _ in range(N+1)] for i in range(N): tmp = list(map(int, input().split())) time[i] = tmp[0] pay[i] = tmp[1] DP[N] = 0 for i in range(N-1, -1, -1): if (N-i) < time[i]: DP[i] = DP[i+1] else: DP[i] = max(pay..

[삼성/코테기출][Python][백준][14889] 스타트와 링크 (완전탐색/백트래킹)

🍋 문제링크 https://www.acmicpc.net/problem/14889 🍎 코드 제출 기록 (메모리 및 시간) 메모리 : 149476 KB 시간 : 1252 ms 🍓 문제풀이 파이썬으로 조합 만들기 def my_combinations(arr, r): for i in range(len(arr)): if r == 1: yield [arr[i]] else: for next in my_combinations(arr[i+1:], r-1): yield [arr[i]] + next 🍉 Code N = int(input()) power = [list(map(int, input().split())) for _ in range(N)] member = [] for i in range(N): member.append..

[삼성/코테기출][Python][백준][14888] 연산자 끼워넣기 (완전탐색/백트래킹/순열)

🍋 문제링크 https://www.acmicpc.net/problem/14888 🍎 코드 제출 기록 (메모리 및 시간) 메모리 : 160196 KB 시간 : 4694 ms 🍉 Code N = int(input()) number = list(map(int, input().split())) operator = [] tmp = list(map(int, input().split())) for i in range(4): if tmp[i] > 0: if i == 0: for j in range(tmp[i]): operator.append("+") if i == 1: for j in range(tmp[i]): operator.append("-") if i == 2: for j in range(tmp[i]): oper..

[삼성/코테기출][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) 위와 같..

코딩 독학/공부 사이트 모음

안녕하세요! daily_D 입니다! 🤗 오늘은 무료/유료 강의를 들을 수 있는 프로그래밍 독학 사이트들을 공유해볼까합니다😊 혹시 코딩테스트를 준비하고 계시다면 [코딩테스트 준비 사이트 추천] 게시물도 도움이 되실듯합니다! 인프런 www.inflearn.com/ 인프런은 취업/마케팅/개발/보안 관련 강의들을 무료/유료로 들을 수 있으며 모든 분야에 있어서 다양한 강좌가 준비되어있습니다. 예를 들어 개발/프로그래밍 강좌는 웹 / 모바일 앱/ 게임 / 데이터베이스 / 서버 등 매우 다양한 강좌들이 준비되어있어 하나의 분야를 깊이 배우기에 좋은 사이트 입니다. Boostcourse https://www.boostcourse.org/ boostcourse은 프로그래밍 관련 강의를 무료로 들을 수 있고 유료결제를 ..

[삼성/코테기출][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][백준][20055] 컨베이어 벨트 위의 로봇 (시뮬레이션/구현)

🍋 문제링크 🍎 코드 제출 기록 (메모리 및 시간) 메모리 : 123444 KB 시간 : 1284 ms 🍓 문제풀이 if __name__ == '__main__': N, K = map(int, input().split()) belt = list(map(int, input().split())) robot = [] cnt = 0 # 횟수를 저장할 변수 up_idx = 0 # 올라가는 위치의 인덱스 down_idx = N - 1 # 내려가는 위치의 인덱스 while belt.count(0) < K: # 내구도가 0인 벨트가 K개 이상이면 끝 cnt += 1 # 한칸씩 오른쪽으로 회전 up_idx = (2 * N - 1) if (up_idx == 0) else (up_idx - 1) down_idx = (2 *..