🌿All posts 199

✏️ [백준 2847] 게임을 만든 동준이

1. 문제 www.acmicpc.net/problem/2847 2847번: 게임을 만든 동준이 학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어 www.acmicpc.net 2. 접근방법 저는 앞에서부터 봤습니다. 대신 계속 앞에서부터 봐줘야함 매우 비효율적이었습ㄴㅣ다 3. 파이썬 코드 def cal(): answer = 0 for i in range(N - 1): if lst[i] >= lst[i + 1]: answer += (lst[i] - lst[i + 1] + 1) lst[i] -= (lst[i] - lst[i + 1] + 1) return answer def ..

Algorithm/Python 2021.03.05

✏️ [백준 2475] 검증수

1. 문제 www.acmicpc.net/problem/2475 [ 2475번: 검증수 컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들 www.acmicpc.net ](https://www.acmicpc.net/problem/2475) 2. 접근방법 1. input 받기 2. 리스트화 시켜주기 3. 각각의 원소를 제곱해줘서 더해주기 4. 10으로 나눈 나머지 도출 -> 요로코롬 자세히 쓴 이유는 ... 아래에서 ... 3. 코드 const readline = require('readline'); const rl = readline.create..

✏️ [알고리즘] 순열

일단 시작하기에 앞서 순열 생성은 저에게 정말 크나큰 !!!! 매우 헷갈렸던 !!!!!!! 고런 녀석이었습니다. 그러다가 ... from itertools import permutations 의 존재를 알게 되고 직접 짜서 사용하는 순열은 바이바이였는데요 !!! 드디어 오늘 하늘님의 도움을 받아 정리하게 되었습니다 ~! # 3P2 def perm(k): global N, inputs, answer if k == N: print(answer) return for i in range(len(inputs)): if not visited[i]: visited[i] = True answer.append(inputs[i]) perm(k+1) visited[i] = False answer.pop() N = 2 inp..

Algorithm/Python 2021.02.07

✏️ [백준 16236] 아기 상어

1. 문제 www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 2. 접근방법 1. 상어의 위치를 구한다 2. BFS를 이용해서 순회한다 2-1. 이 때, 상어가 움직일 수 있는 좌표를 담은 queue(q), 먹을 수 있는 물고기를 담은 queue(eatq) 이렇게 두 개가 필요하다 2-2. 먹을 수 있는 물고기 기준인 상어의 크기를 변수로 만든다. (level) 2-3. 상어가 이동한 거리를 담을 변수를 만들어준다. (eat_time) 2-4. 상어가 먹..

Algorithm/Python 2021.02.03

✏️ [백준 20055] 컨베이어 벨트 위의 로봇

1. 문제 www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 2. 접근방법 문제를 이해하는게 어려웠던 문제 3. 파이썬 코드 N, K = map(int, input().split()) boxes = list(map(int, input().split())) robots = [0] * N cnt = 0 while True: cnt += 1 boxes = [boxes[-1]] + list(boxes[0:len(boxes)-1]) robots =..

Algorithm/Python 2021.02.02

✏️ [백준 17471] 게리맨더링

1. 문제 www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 2. 접근방법 처음에 문제 이해하는게 어려웠심다 몇번을 읽었는지 .. ;ㅁ; 한국어가 부족한가봅니다요 뭐여튼 무튼 글자 그대로 차근차근 따라가보면 엇 이거 어떻게 해야하지 싶은뎁쇼 1. 인접하다는 것을 어떻게 파악하지 => 인접리스트, 인접행렬 2. 2개로 어떻게 나누지 => 부분집합 으로 생각했습니당 주로 부분집합 문제 풀 때 귀찮아서 `import itertools`를 쓰는데용 SWEA는 그것을 허용하지 않는 다는 말..

Algorithm/Python 2021.02.01

✏️ [백준 17070] 파이프 옮기기 1

1. 문제 www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net 2. 접근방법 파이프의 모양마다 붙일 수 있는 파이프의 종류가 다른 점에서 시작 ! N이 작아서 완탐 문제라고 생각했음 1. 가로 파이프의 경우 가로 OR 대각선만 가능 1-1. 가로 파이프를 끼우기 위해서는 오른쪽만 확인하면 됨 1-2. 대각선 파이프를 끼우기 위해서는 오른쪽, 아래쪽, 대각선 아래 확인하면 됨 2. 세로 파이프의 경우 세로 OR 대각선만 가능 2-1. 세로..

Algorithm/Python 2021.01.31

✏️ [백준 1929] 소수구하기

1. 문제 www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 2. 접근방법 예전에 모르고리즘 문제 중 소수 판별하기 문제가 있었는데 그 문제 풀면서 사용했던 "에라토스테네스의 체"가 생각나서 이걸로 풀었습니다. 사실 그거 이름만 기억나고 구현 방법은 기억이 안나서 ^-^ ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 서치 했구요 .. A형 시험 D-3인데 .. 잘 할 수 있겠쬬 ..? ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 흠 ~! 출처 : wikidocs.net/2163..

Algorithm/Python 2021.01.31