본문 바로가기

Algorithm/etc111

[파이썬] 백준 3089 : 네잎 클로버를 찾아서 (골드2) [파이썬] 백준 3089 : 네잎 클로버를 찾아서 (골드2) 3089번: 네잎 클로버를 찾아서 숭이는 지구에 놀러온 외계인에게 조정당하고 있다. 외계인은 숭이를 이용해서 네잎 클로버를 찾은 뒤, 숭이를 그 자리에 놔두고 다시 자기들의 행성으로 떠나려고 한다. 숭이가 있는 곳은 2차 www.acmicpc.net 문제 풀이 방향성 생각 명령이 주어진 방향에는 항상 네잎클로버가 존재한다. UD 입력이 주어지면 x좌표를 고정시키고 y좌표에 대해서 이분탐색을 진행한다. LR 입력이 주어지면 y좌표를 고정시키고 x좌표에 대해서 이분탐색을 진행한다. 숫자가 커지는 방향으로 갈 때는 bisect_right을 써서 이동하려는 인덱스 반환받아서 업데이트. 숫자가 작아지려는 방향으로 갈 때는 bisect_left를 써서 인.. 2023. 12. 18.
[파이썬] 백준 1035 : 조각 움직이기 (골드1) [파이썬] 백준 1035 : 조각 움직이기 (골드1) 1035번: 조각 움직이기 최대 5개의 조각이 있는 5×5 크기의 보드가 있다. 김지민은 조각을 적절히 움직여서 모든 조각이 연결 요소를 이루게 하려고 한다. 즉 상하좌우로 인접한 조각을 모두 연결했을 때, 모든 쌍의 조 www.acmicpc.net 문제 풀이 0. 방향성 생각 array 상태가 * . 두개만 존재 + 5*5 : 2^25 -> bitmask 조각이 상태를 int로 변환해준 후, bitmask로 연산을 줄여준다. list로 변환하지 않고 bitstream을 이용해주면 더 빨리 풀 수 있지만, TLE안나고 충분히 가능할거라 생각해서 현재 상태를 2차원 array로 바꿔서 연결요소 개수를 체크한다. 1. 입력 from collections .. 2023. 12. 16.
[파이썬] 백준 22945 : 팀 빌딩 (골드4) [파이썬] 백준 22945 : 팀 빌딩 (골드4) 22945번: 팀 빌딩 개발자 $N$명이 팀 빌딩을 위해 한 줄로 서있다. 하나의 팀을 만들기 위해서는 개발자 2명이 반드시 모여야 한다. 개발자 A와 개발자 B가 팀을 만들 때 팀의 능력치는 아래와 같이 계산이 된다. (개 www.acmicpc.net 문제 풀이 방향성 생각 구간 양 끝을 잡고 점수를 점수를 계산한다. 포인터를 작은쪽을 변경시켜야 더 높은 점수를 얻을 수 있는 가능성이 생긴다. 왼쪽 포인터의 값이 크면 오른쪽 포인터를 감소시키고, 그 반대의 경우는 왼쪽 포인터를 감소시킨다. 전체코드 n = int(input()) info = list(map(int,input().split())) l,r = 0,n-1 answer = (n-2)*min(i.. 2023. 12. 12.
[파이썬] 프로그래머스 : 모음사전 (Lv.2) [파이썬] 프로그래머스 : 모음사전 (Lv.2) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 0.방향성 생각 생긴게 딱 재귀처럼 생겼음 재귀 바깥에 nonlocal로 카운트 세는 answer 변수 지정하고 풀이, 현재 상태 나타내는 string 리스트도 저장 최대 깊이 도달했는데 못찾으면 False, 찾았으면 True로 1. DFS 풀이 def solution(word): arr,string = ['A','E','I','O','U'],[] answer = 0 def dfs(): nonlocal answer,string if ''.join(strin.. 2023. 11. 30.