Python 5

[BOJ] 백준 1362 펫 : python 풀이

목차(눌러서 이동 가능)📌 문제 핵심 논리📌 코드 흐름📌 전체 코드 보기 이번 포스팅에서는 백준 1362번 펫 문제를 다뤄보겠습니다. 전체 코드는 글 최하단에 첨부 되어있습니다!문제 링크 : https://www.acmicpc.net/problem/1362 📌 문제 핵심 논리solved.ac 기준 브론즈 2 문제기 때문에 제한 조건도 넉넉하고 별도의 알고리즘 없이 단순 구현으로 쉽게 해결할 수 있는 문제입니다.종료 조건이나, 사망 조건 처리 위치에 신경을 쓰면 큰 어려움 없이 해결 할 수 있습니다 :) 적정 체중(o), 초기 체중(w)이 주어지고 콘솔 F(증가), E(감소)에 따라 숫자 n만큼의 값을 증감시키며 시뮬레이션을 진행합니다.체중이 0 이하가 되면 사망(RIP)가 되며, 이 다음 ..

[BOJ] 백준 1759번 파이썬 풀이 : combinations 활용하기

이번 포스팅에서는 백준 1759번 문제 암호 만들기 풀이를 다뤄보도록 하겠습니다. 전체 코드는 페이지 제일 하단에 있습니다!문제 링크 : https://www.acmicpc.net/problem/1759   문제에서는 길이가 L인 암호를 C개의 문자 중에서 뽑아 만들되, 아래의 조건들을 만족해야 합니다 : - 최소 1개의 모음(a, e, i, o, u) 포함- 최소 2개의 자음 포함- 증가하는 순서로 배열될 것(abc는 가능하지만 acb, bac, cab 등은 불가능)  📌  풀이 아이디어저는 이번 문제를 풀 때 itertools 모듈에 있는 combinations 함수를 활용했습니다.Combinations는, 주어진 이터러블에서 n개의 원소를 뽑아 만들 수 있는 모든 조합을 반환하는 함수입니다.(순서..

[leetcode] 리트코드 Weekly Contest 434. 2번 풀이(3433번 문제)

이번 포스팅에서는 25.01.30일에 이뤄졌던 리트코드 weekly contest 434 2번 문제를 다뤄보도록 하겠습니다.(리트코드3433번 문제 )전체 코드는 포스팅 제일 하단에 정리되어 있습니다.   해당 문제는 입력된 이벤트를 기반으로 사용자들의 온라인/오프라인 상태를 관리하고,특정 시점에서 언급된 사용자의 횟수를 계산하는 것이 핵심입니다. 특정 알고리즘을 사용하지 않고 상태 변경 업데이트, 언급 처리 로직 & 조건 체크 만으로도 풀이가 가능하다 판단했습니다.문제를 푸는 내내 가장 중요하게 생각한 총 세가지 부분은 아래와 같습니다.이벤트 (events[]) 정렬: 먼저 타임스탬프를 기준으로 이벤트를 정렬하고 -> 동일한 타임스탬프에서는 "OFFLINE" 이벤트가 우선 처리되도록 정리유저 상태 관리..

[코드 트리] 거울에 레이저 쏘기2 Python 풀이

이번 포스팅에서는 dx, dy 테크닉을 활용한 문제 중 하나인 "거울에 레이저 쏘기 2" 문제를 다뤄보겠습니다.전체 코드는 포스팅 하단에 첨부되어 있으니 참고하세요 링크 : https://www.codetree.ai/missions/5/problems/shoot-a-laser-in-the-mirror-2/description 문제를 처음 보면 복잡해 보일 수 있지만, 결국 문제의 포인트는 거울의 역할을 이해하는 것 입니다.  접근한 값이 '\'일 때 시계 반대 방향으로 회전,접근한 값이 '/' 일 때 시계 방향으로 방향으로 회전 즉, 레이저의 현재 방향을 다음 칸의 값에 따라 지속적으로 업데이트 시켜주는 것이 핵심입니다.   1. 기본 변수 설정먼저 한 변의 길이인(배열 길이) 변수 N,N줄에 걸쳐 주어..

[코드 트리] 빙빙 돌며 숫자 사각형 채우기 Python 풀이

이번 포스팅에서는 시뮬레이션 유형 중 dx, dy 테크닉을 활용한 문제인빙빙 돌며 숫자 사각형 채우기 문제 답 코드를 올려보도록 하겠습니다. 전체 코드는 포스팅 제일 아래에 첨부되어 있습니다 링크:https://www.codetree.ai/missions/5/problems/snail-number-square/description   먼저 행과 열을 입력받고, 입력받은 값에 따라 배열을 생성합니다.저는주로상 좌표 x, y와 행/열을 헷갈려서 변수명을 h, y로 설정하여 풀었습니다.h, y = map(int, input().split()) # h : 행 // y : 열check = [ [0]* y for _ in range(h) ]  다음으로, 방향 전환을 위한 배열 nhs(행 방향)와 nys(열 방향)을..