[BOJ] 1463. 1로 만들기(python)
📌문제 💪아이디어 1을 뺀다 모든 정수가 1이 되기 위해서는 1을 빼는 과정은 모두 사용한다. 2가 1이 되기위해서 1번, 3이 1가 되려면 2번(3-1-1), … , n이 1되려면 n-1번 1을 뺀다. 2로 나눈다 2로 나누어 떨어지면 2로 나누는 것이 1로 도달하는 횟수가 적어진다. 2가 1이 되기위해서 1번...
📌문제 💪아이디어 1을 뺀다 모든 정수가 1이 되기 위해서는 1을 빼는 과정은 모두 사용한다. 2가 1이 되기위해서 1번, 3이 1가 되려면 2번(3-1-1), … , n이 1되려면 n-1번 1을 뺀다. 2로 나눈다 2로 나누어 떨어지면 2로 나누는 것이 1로 도달하는 횟수가 적어진다. 2가 1이 되기위해서 1번...
📌문제 💪아이디어 맵 만들기 좌표가 1,1부터 시작한다.인덱스조정을 하는 번거러움을 줄여야하기 때문에 행 1줄과 열1줄을 미리 넣어주고 입력값을 넣어준다. (N,M)까지 이동하기 인접한 곳만 움직일 수 있기 때문에 상하좌우로만 이동이 가능하다.(dy,dx로 설정) y,x좌표가 1이상 n, m이하일때 이동이 가능하고...
📌문제 💪아이디어 이 문제는 시간초과떄문에 꽤나 애먹었던 문제였다. 시간 복잡도를 줄이기 위해 1) 땅을 이차원 배열에서 일차원 배열로 바꿔서 for문을 줄인다. 2) 땅의 높이를 입력받은 땅의 높이 min에서 max+1까지 검사한다. 등등 알고리즘을 바꾸려고 노력했는데 결국에는 언어를 python3이 아니라 pypy3로 바꾼 후 통과할 수 ...
📌문제 💪아이디어 알파벳 소문자를 숫자로 바꾸기 ord(‘소문자’)는 소문자의 ASCII값을 반환해준다. 소문자의 시작은 ‘a’이고 a는 1이기 때문에 - ord('a') + 1 해준다. MOD값 $ (A+B)\ MOD \ C \ = \ (A \ MOD \ C \ + \ B \ MOD \ C) \ ...
📌문제 💪아이디어 원만들기 queue로 맨 앞 요소를 빼고 다시 queue의 뒤에 붙이는 식으로 순환하도록 한다. k번째 요소 빼기 숫자를 빼면서 몇 번째인지 확인하고 k번째의 숫자라면 그 숫자는 queue 뒤에 붙이지 않고 요세푸스 수열의 요소에 넣는다. 그리고 다시 k번째부터 세기 위해서 초기화해준다. ...
📌문제 💪아이디어 $$ \begin{pmatrix} N\\ K \end{pmatrix} = {}_n \mathrm{ C }_k =\frac{n!}{r!(n-r)!} $$ 콤비네이션을 계산할 수 있는 파이썬의 라이브러리로 math.combination이 있다. 🥂코드 from math import comb n, k = map(in...
깃프로필에 productive-box를 사용하려했는데 액션에서 자꾸 unable to access 'https://github.com/skagmltn7/productive-box/': The requested URL returned 에러가 떴다. 이러한 에러가 뜬다면 productive-box를 fork한 레파지토리- Settings - Acti...
📌문제 💪아이디어 주어진 수열 만들 수 있는지 검사 max 값은 해당 인덱스의 수열값을 갱신해 가면서 검사해 줬다. max의 최댓값은 n이다. n에 도달하면 그다음부터는 작은 수가 나올테니까 max값을 stack의 맨 위의 값으로 갱신하가면서 True,False검사하는 범위를 줄여줬다. max값과 비교 ...
📌문제 💪아이디어 목재절단기 높이 범위 정하기 목재 절단기의 높이는 0에서 부터 최대 제일 높은 나무만큼 범위를 잡을 수 있다. 목재절단기 높이 찾기 나무높이 - h 를 모아 m만큼만 가지고 가기 때문에 최대 h값을 찾아야했다. 시간복잡도로 인해 binary search를 사용했다. 🥂코드 n,m = map(int,input().s...
프로그램 오류는 아래의 그림처럼 종류가 나뉜다. 컴파일 에러 컴파일할때 발생하는 에러로 프로그램이 시작되지 않는다. 런타임 에러 프로그램이 실행 후 발생하는 에러로 프로그램이 비정상 종료된다. 논리적 에러 프로그램을 구현한 의도와 달리 동작, 정상적으로 프로그램이 실행되고 종료된다. ...