전체 글 93

[백준] 2579 계단 오르기 (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 작성코드 해설 문제에서 룰은 총 세가지이다. 계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다. 연속된 세 개의 계단을 모두 밟아서는 안 된다. 단, 시작점은 계단에 포함되지 않는다. 마지막 도착 계단은 반드시 밟아야 한다. 이를 계산하기 위해 모든 과정을 탐색 알고리즘인 DFS로 푼다면 엄청난 시간이 걸리..

백준/Python 2022.12.01

[백준] 26073 외로운 곰곰이는 친구가 있어요 (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/26073 26073번: 외로운 곰곰이는 친구가 있어요 첫 번째 줄에 친구의 수 $N\ (1 \le N \le 10\,000)$이 주어집니다. 이후 $N$개의 친구 정보가 각각 두 줄에 걸쳐 주어집니다. $i$번째 친구 정보의 첫 번째 줄에는 친구의 처음 위치 $X_i$, $Y_i\ (-100\,000 \le X www.acmicpc.net 작성코드 해설 1) 좌표에 도달하기 위한 시간 제한 같은것은 없기 때문에 얼마나 오랫동안 헤매던 상관없이 도달만 하면 된다. 즉, 좌표이동 값의 최소단위를 알면 도달 가능 여부를 알 수 있다. (Ex. 이동 가능 거리가 9999와 9998이 있다면 오른쪽으로 9999 이동 후 왼쪽으로 9998을 이..

백준/Python 2022.11.30

[백준] 26072 곰곰이와 시소 (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/26072 26072번: 곰곰이와 시소 첫번째 줄에 정수 $N$과 $L$이 공백을 사이에 두고 주어진다. $(1 \le N, L \le 100\,000)$ 두번째 줄에 정수 $x_1, x_2, \cdots, x_N$이 공백을 사이에 두고 주어진다. $(0 \le x_i \le L)$ 세번째 줄에 정수 $w_1, w_2, \c www.acmicpc.net 작성코드 풀이 1) 문제 노트에 있는 공식을 활용해서 풀어야한다. WL은 왼쪽에 있는 치킨들의 값 WR은 오른쪽에 있는 치킨들의 값으로 생각하면 된다. Σ 는 숫자의 합이므로 Σ(1~N)이라면 1~N 까지의 합이다 2) 시그마 공식을 그대로 써서 계산하면 바로 나오겠지만 이해하기 쉽도록..

백준/Python 2022.11.28

[백준] 26071 오락실에 간 총총이 (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/26071 26071번: 오락실에 간 총총이 모든 곰곰이를 하나의 칸에 모으기 위해, 총총이가 최소 몇 번 버튼을 눌러야 하는지 구하시오. www.acmicpc.net 작성코드 풀이 1) G(곰곰이)가 한 곳에 모이기 위해서는 한 변에 도달해야 겹쳐지기 시작한다. 이렇게 모을 경우 모든 G를 모으기 위해 4가지 경우의 수가 존재한다. - G가 하나 : 움직일 필요 없음 - G가 가로 한줄 : 가로 변에서 합침 - G가 세로 한줄 : 세로 변에서 합침 - G가 가로 세로 흩어짐 : 모서리로 이동 2) 이를 코드로 바꿔 해결하려면 우선 G의 위치를 찾아야한다. 입력 받을 때 바로 처리를 해주는 방식으로 작성했다. 3) G가 존재하는 위치의..

백준/Python 2022.11.28

[백준] 1932 정수 삼각형 (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 작성코드 풀이 1) 꼭대기부터 내려가면서 최댓값을 찾아야하는 문제이다. 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 2) 내려가면서 해당 위치에 도달할 수 있는 최대값을 dp에 저장해주어 재활용 해준다. ※ 알아보기 쉽도록 dp 배치를 1번 입력과 동일한 형식으로 만들어주었다. 3) 가로줄에서 2차배열의 0과 세로줄과 같은 숫자의 경우는 선택지가 하나로 고정되어있다. dp[h][0] = dp[h-1][0] dp[h][h] = dp[h-1][h-1]..

백준/Python 2022.11.27

[백준] 1912 연속합 (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 작성코드 풀이 1) dp 배열에 이전 연속된 수들의 합을 저장해주어 다음 연산에 사용한다. 2) 만약 이전 연속된 수들의 합이 음수가 된다면 합할 시 오히려 손해가 되므로 음수인 경우 현재 수를 dp에 저장해준다. 3) dp에 미리 0으로 채워둔 수가 연속값의 최대를 구할 때 영향을 주므로 새로운 배열에 저장값들을 옮겨준다

백준/Python 2022.11.27

[백준] 9461 파도반 수열 (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net 작성코드 풀이 1) 규칙 찾기 도형의 접하지 않는 건너편 2개의 큰 삼각형 변 길이 합이 이번 삼각형의 변 길이가 됨을 찾을 수 있다. P = [1, 1, 1, 2, 2, 3, 4, 5, 7 ,9, 12] 수열로서 찾아도 확인이 가능하다. 수식으로 보자면 P[N] = P[N-2] + P[N-3]의 값이 나오는 것을 찾을 수 있다. 2) 구현하기 찾은 규칙에 따라 리스트에 저장해 주는데 테스..

백준/Python 2022.11.27

[유니티] 모바일 해상도 고정하기

참고영상 : https://www.youtube.com/watch?v=uQZFawccnNg ※ 구현 목표 서로 다른 모바일 해상도에 화면 고정 방식으로 대응한다. 다른 해상도에서는 검은 레터박스 여백으로 9:20 비율을 맞춰준다. 1. UI 캔버스 설정 참고 : https://docs.unity3d.com/kr/2020.3/Manual/script-CanvasScaler.html 캔버스 스케일러 - Unity 매뉴얼 캔버스 스케일러(Canvas Scaler) 컴포넌트는 캔버스 내 UI 요소의 전체적인 스케일과 픽셀 밀도를 제어하는 데 사용됩니다. 스케일은 글꼴 크기와 이미지 경계 등 캔버스 아래의 모든 요소에 영향을 docs.unity3d.com 1) UI Canvas Scaler UI의 Canvas S..

[유니티] Jumping Rabbit #6 클리어 박스 애니메이션 추가 및 버그 수정

※ 변경사항 상자 오픈 애니메이션 추가, 고속으로 이동시 벽 뚫는 버그 제거 1. 상자 오픈 애니메이션 추가 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Clear : MonoBehaviour { Animator anim; public GameObject ClearPanel; void Start() { anim = GetComponent(); anim.SetBool("Clear", false); ClearP..

[백준] 11659 구간 합 구하기 (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 작성코드 풀이 1) 기본 구현 방식 단순하게 i에서 j까지 리스트의 값들을 sum에 계속 저장해주는 방식이다. 하지만 이렇게 작성하면 시간 복잡도가 O(N*M)으로서 숫자가 커지게 되면 시간초과가 나오게 된다. 기본 방식으로 일정 구간 합을 구할 경우 10의 길이를 가진 arr 배열을 예시로 비교해보겠다. arr = [0, 1, 2, 3, 4, 5, 6, 7, ..

백준/Python 2022.11.24