본문 바로가기
728x90
반응형

분류 전체보기115

백준 스타트와 링크 [14889] 파이썬(Python) 코드 + 해설 문제 이해하기이 문제는 브루트 포스와 백트래킹 관련 문제입니다.해결 방법팀 조합 생성: N명의 사람들 중 N/2명을 선택하여 한 팀을 구성하고, 나머지 N/2명은 다른 팀을 구성합니다.능력치 계산: 각 팀에 대해 팀에 속한 모든 쌍의 사람들에 대해 능력치를 합산합니다.차이 계산 및 최소화: 두 팀의 능력치 합의 차이를 계산하고, 그 중 최소값을 찾습니다.구현 방법입력 받기N과 능력치 행렬 SSS를 입력받습니다.사람의 번호는 0부터 N-1까지로 설정합니다.모든 팀 조합 생성N명의 사람들 중 N/2명을 선택하는 모든 조합을 생성합니다.itertools.combinations를 사용합니다.조합의 대칭성을 이용하여 전체 조합의 절반만 고려합니다.팀 능력치 합 계산각 팀 조합에 대해 다음을 수행합니다:팀 A의 능.. 2024. 10. 27.
백준 연산자 끼워넣기 [14888] 파이썬(Python) 코드 + 해설 해결 전략이 문제는 가능한 모든 연산자 배치를 시도하여 결과의 최댓값과 최솟값을 찾는 백트래킹(DFS) 문제입니다.알고리즘 개요입력받기: 수열과 연산자 개수를 입력받습니다.백트래킹 함수 구현:현재까지의 계산 결과, 사용한 연산자 개수, 수열의 인덱스를 인자로 받습니다.모든 연산자 배치를 시도합니다.각 연산자 배치마다 결과를 계산하고, 최댓값과 최솟값을 갱신합니다.나눗셈 구현:나눗셈에서 음수 처리를 문제의 요구사항에 맞게 구현합니다.결과 출력: 최종적으로 구한 최댓값과 최솟값을 출력합니다. 핵심 포인트백트래킹을 통한 완전 탐색: 모든 가능한 연산자 배치를 시도하여 최적해를 찾습니다.나눗셈의 정확한 구현: 파이썬의 나눗셈 연산과 문제의 요구사항의 차이를 이해하고 올바르게 구현합니다.연산자 우선순위 무시: 계.. 2024. 10. 26.
백준 로봇 청소기 [14503] 파이썬(Python) 코드 + 해설 문제 이해하기이 문제는 로봇 청소기가 방을 돌아다니며 청소하는 영역의 개수를 구하는 것이다.문제 설명방의 구조: N x M 크기의 직사각형 방이 있고, 각 칸은 벽(1) 또는 빈 칸(0)이다.로봇 청소기의 위치와 방향:좌표 (r, c)에 위치해 있으며, 방향 d를 가지고 있다.방향 d는 북(0), 동(1), 남(2), 서(3) 중 하나이다.로봇 청소기의 작동 방식:현재 위치를 청소한다.현재 위치에서 다음을 반복한다:주변 4칸 중 청소되지 않은 빈 칸이 있는지 확인한다.있다면, 반시계 방향으로 90도 회전하고, 전진한다.없다면, 바라보는 방향을 유지한 채로 후진한다.후진할 수 없다면 작동을 멈춘다.청소한 칸의 개수를 구한다.해결 방법: 시뮬레이션 구현이 문제는 로봇 청소기의 동작을 그대로 구현하는 시뮬레이.. 2024. 10. 25.
백준 연구소 [14502] 파이썬(Python) 코드 + 해설 #완전 탐색과 BFS 이 문제는 바이러스가 유출된 연구소에서 벽을 세워 바이러스의 확산을 막고, 안전 영역의 최대 크기를 구하는 것이 목표이다.문제 설명연구소 지도: N x M 크기의 직사각형이며, 각 칸은 다음 중 하나이다:빈 칸: 0벽: 1바이러스: 2바이러스 확산: 바이러스는 상하좌우로 인접한 빈 칸으로 퍼져나간다.벽 세우기:새로 세울 수 있는 벽의 개수는 정확히 3개이다.벽은 빈 칸에만 세울 수 있다.목표: 벽을 적절히 세워서 안전 영역(바이러스가 퍼질 수 없는 영역)의 크기를 최대로 만드는 것이다.해결 방법: 완전 탐색과 BFS 사용이 문제는 다음과 같은 방법으로 해결할 수 있다:모든 벽 세우기 경우의 수를 탐색한다:빈 칸 중에서 3개를 선택하여 벽을 세우는 모든 조합을 생성한다.N과 M이 최대.. 2024. 10. 24.
백준 퇴사 [14501] Python 코드 + 해설 문제 설명 1상담원으로 일하고 있는 백준이는 퇴사를 하려고 한다.오늘부터 N+1일째 되는 날 퇴사를 하기 위해서, 남은 N일 동안 최대한 많은 상담을 하려고 한다.백준이는 비서에게 최대한 많은 상담을 잡으라고 부탁을 했고, 비서는 하루에 하나씩 서로 다른 사람의 상담을 잡아놓았다.각각의 상담은 상담을 완료하는데 걸리는 기간 Ti와 상담을 했을 때 받을 수 있는 금액 Pi로 이루어져 있다.N = 7인 경우에 다음과 같은 상담 일정표를 보자. 1일2일3일4일5일6일7일TiPi35112421020102015402001일에 잡혀있는 상담은 총 3일이 걸리며, 상담했을 때 받을 수 있는 금액은 10이다. 5일에 잡혀있는 상담은 총 2일이 걸리며, 받을 수 있는 금액은 15이다.상담을 하는데 필요한 기간은 1일보다.. 2024. 10. 23.
파이썬(Python) Session Cookie Request 헤더(Header)에 집어넣기 파이썬으로 크롤링을 하다보면 requests의 Session의 쿠키(Cookie)를 새로운 Request의 헤더에 포함시켜야할 때가 있다.이럴때 사용할 수 있는 방법을 소개하려고 한다.먼저 session.cookies.get_dict()으로 현재 세션의 쿠키를 딕셔너리 형태로 가져온다.session.cookies.get_dict()그 다음 그 쿠키들을 헤더의 Cookie 필드에 추가하기 위해 '; '.join([f'{name}={value}' for name, value in cookies.items()])로 변환한다.'Cookie': '; '.join([f'{name}={value}' for name, value in cookies.items()])마지막으로 새로운 request에 해당 쿠키를 포함시켜.. 2024. 10. 23.
백준 테트로미노 [14500] Python 코드 + 해설 백준 테트로미노 14500 파이썬(python) 코드 및 해설입니다.( DFS와 브루트 포스 ) **DFS(깊이 우선 탐색)**를 사용하여 모든 가능한 모양을 탐색한다.'ㅗ' 모양은 DFS로 탐색할 수 없으므로 별도로 처리한다.경계 조건을 명확히 확인하여 인덱스 오류를 방지한다.최적화를 위해 가지치기를 사용한다.구현 단계입력 받기종이의 크기 N, M과 종이에 쓰인 수들을 입력받는다.종이의 정보를 2차원 리스트 board에 저장한다.DFS 함수 구현현재 위치에서 깊이 4까지 탐색하여 가능한 모든 모양의 합을 계산한다.이미 방문한 위치를 재방문하지 않도록 visited 배열을 사용한다.백트래킹을 통해 방문 상태를 원래대로 복구한다.가지치기를 위해 남은 칸에서 얻을 수 있는 최대 값을 미리 계산하여 합산해도 .. 2024. 10. 22.
백준 주사위 굴리기 [14499] Python 코드 + 해설 백준 주사위 굴리기 14499 파이썬(Python) 정답 코드 및 해설입니다.이 문제에서는 N x M 크기의 지도 위에 주사위가 놓여 있고, 주어진 명령에 따라 주사위를 굴리면서 특정 규칙에 따라 지도의 숫자와 주사위의 숫자를 변경한다.주사위의 초기 상태와 전개도주사위의 초기 전개도는 다음과 같다: 24 1 3 5 6윗면: 1아랫면: 6앞면: 5뒷면: 2왼쪽 면: 4오른쪽 면: 3주사위의 모든 면에는 처음에 0이 적혀 있다.이동 규칙주사위를 이동시킨다.이동 방향은 동쪽(1), 서쪽(2), 북쪽(3), 남쪽(4)이다.주사위를 이동시킬 때 지도의 바깥으로 이동하려고 하면 그 명령은 무시한다.이동한 칸에 쓰여 있는 수에 따라 다음을 수행한다:칸의 수가 0이면: 주사위의 바닥면에 쓰여 있는 수를 칸에 복사.. 2024. 10. 22.
파이썬 UUID 생성(uuid) 방법 How to generate uuid in python code UUID란 무엇인가?UUID는 Universally Unique Identifier의 약자로, 전 세계적으로 고유한 식별자를 의미한다. 이는 시스템 내에서 객체나 데이터를 고유하게 식별해야 할 때 주로 사용된다.왜 UUID를 사용해야 하는가?고유한 식별자가 필요한 상황에서 UUID를 사용하면 중복 없이 안전하게 식별자를 생성할 수 있다. 특히, 분산 시스템이나 여러 데이터베이스에서 중복되지 않는 ID를 생성해야 할 때 유용하다.파이썬에서 UUID 생성하기파이썬에서는 내장 모듈인 uuid를 사용하여 쉽게 UUID를 생성할 수 있다. 1. UUID 모듈 임포트(import)import uuid2. UUID 생성 방법UUID1: 호스트의 네트워크 주소와 현재 시간을 기반으로 생성import uuiduuid1 .. 2024. 10. 22.
728x90
반응형