본문 바로가기
728x90

파이썬10

[백준/BOJ] 2252번 - 줄 세우기 (Python, Java) · 문제링크 https://www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net · 핵심 : 위상 정렬 - 「 in-degree를 활용한 방법」 1. 방향성이 존재하는 그래프 생성( 무방향성 그래프, 사이클 있는 그래프의 경우 위상정렬이 쉽지 않음) → adj 그래프 생성 ☆ 2. 들어오는 간선의 수 기록 → 위상정렬에서는 in-degree = 0인 후보군(candiates)을 문제 조건에 부합한 특정 자료 구조(리스트,.. 2023. 9. 25.
[코드트리 챌린지] 3주차 - Simulation (3) ★ 핵심 : 격자 안에서 밀고 당기기 1. temp로 경계값 일시저장 후 오른쪽 또는 왼쪽 밀기 arr = [1, 2, 3, 4, 5] n = 5 # 오른쪽으로 밀기(왼쪽에서 밀기) # Step 1 - 오른쪽 경계값 저장 temp = arr[-1] # Step 2 - 오른쪽 밀기 for i in range(n - 1, 0, -1): arr[i] = arr[i - 1] # Step 3 arr[0] = temp # [5, 1, 2, 3, 4] # 왼쪽으로 밀기(오른쪽에서 밀기) # Step 1 - 왼쪽 경계값 저장 temp = arr[0] # Step 2 - 왼쪽으로 밀기 for i in range(n - 1): arr[i] = arr[i + 1] # Step 3 arr[-1] = temp # [2, 3, .. 2023. 9. 23.
[코드트리 챌린지] 2주차 - Simulation (2) ★ 핵심 : 격자 안에서의 완전탐색 1. 유형 : 모든 경우의 수 판단 2. 시간복잡도 계산 필수 : 보편적으로 시간복잡도가 1억이 넘어가면 시간초과날 확률이 높다. 문제링크 https://www.codetree.ai/cote/13/problems/tromino?&utm_source=clipboard&utm_medium=text' 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 핵심 1. 2가지 블록의 총 경우의 수 : 6가지( ㅡ모양, ㅣ모양, ㄱ모양, 반대ㄱ모양, ㄴ모양, 반대 ㄴ 모양) 2. 반대모양 구할 때 모양을 돌리지 말고 점수판자체를 반대.. 2023. 9. 16.
[백준/BOJ] 2174번 - 로봇 시뮬레이션(Python) · 문제링크 https://www.acmicpc.net/problem/2174 2174번: 로봇 시뮬레이션 첫째 줄에 두 정수 A, B가 주어진다. 다음 줄에는 두 정수 N, M이 주어진다. 다음 N개의 줄에는 각 로봇의 초기 위치(x, y좌표 순) 및 방향이 주어진다. 다음 M개의 줄에는 각 명령이 명령을 내리는 순 www.acmicpc.net · 핵심 1. 방향에 따라 움직임 : dx-dy 테크닉 사용 2. 격자 내 움직임 : in_range 함수로 판단 3. 편한 좌표계로 변환(convert_coordinates) 및 문자 방향 동(0)남(1)서(2)북(3)에 맞게 변환(direction) ≫ (기존) 1base의 왼쪽 하단(1, 1) - 오른쪽 상단(n, m) → (변형) 0base의 왼쪽 상단(.. 2023. 9. 11.
728x90
반응형