: Web Developer & Data Scientist
백준/구현

[Python] 백준, 21610 (구현)

https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 개요 오늘 하루는 이 녀석에 부서졌다. (몇 시간을 잡고 씨름하다가 구글링으로 찾은 정다보드와 비교해보니 로직이 같은데 왜 나만...) 아직 100% 이해가 안된 것 같음. 어거지로 정답이 나오긴 했지만 아직 의문점이 좀 존재 문제 풀이 감 좀 찾으려고 골드 5 구현 문항만 골라 풀었는데, 이제 슬슬 다른 알고리즘 공부도 병행하려 한다. 해결 방법 dfs, bfs 문항에서 흔히 다루는 초기..

백준/구현

[Python] 백준, 5430 (구현)

https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 개요 구현의 어려움보다는 시간 초과의 해결이 더 메인이었던 문항 어찌저찌 정답이 뜨긴 했는데 이유를 잘 모르겠음 해결 방법 첫 줄에 입력받는 n 만큼 순회 세번째 입력이 리스트 타입으로 보이지만, 문자열의 형태로 들어오는 것이므로 추가적인 변환 필요 rstrip(), split() 메서드는 꾸준히 활용됨 error_flag 는 빈 배열에서 "D" 명령을 내릴 시 error를 발생시킬지 유무를 나타냄 reverse_cnt 는 두번째, 세번째 해결 코드 작..

백준/구현

[Python] 백준, 14503 (구현)

https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 개요 사실 해결이 안됨 -- 모티브로 삼은 정답 코드와 어떤 차이가 있는지도 모르겠고, 흐름이나 로직 모두 완벽한듯 한데.. 앞서 포스팅한 문제처럼 해결 방법이 무궁무진한 "구현" 문항. 처음에 재귀 함수(dfs꼴)로 시도했다가 무수한 실패 끝에 단순 구현만으로 해결 시도 해결 방법 방향 1 : 재귀 함수 활용 is_empty 함수 : 상하좌우 방..

백준/구현

[Python] 백준 15686 (구현)

https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 개요 dfs를 닮은 단순 구현 문항 itertools의 combinations (조합) 을 알면 간단히 해결 가능 (번외) 3중 for문에 함수 참조까지 섞여 있는데 타임 오버가 안나온게 신기 해결 방법 sys 모듈 사용된지 꽤 되어서 그런지 사용법이 잘 기억이 안남 사용 이유는 아마 input 함수의 시간 초과율이 높기 때문 import sys // 두 숫자가 주어질 때 단..

백준/그리디

[Python] 백준, 1339 (그리디)

https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 개요 - 순간순간 최선의 선택을 한다는 그리디 알고리즘 원리에 입각해 알파벳의 입장과 숫자의 입장으로 나눠 생각 - 가장 헷갈렸던 부분은 맨 앞자리에 위치한 알파벳이 같은 수준(등장하지 않았으며 자릿수가 같은)일 경우에 숫자 배분을 어떻게 해줘야하는지에 대한 고민 해결 방법 - 위에 서술한 두번째 고민은 큰 의미가 없었는데, 중요한 건 어떤 알파벳이 어떤 숫자를 가져가느냐가 아님 - 그것보다..

백준/그리디

[Python] 백준, 1541 (그리디)

https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 그리디 알고리즘? 각 상황에서 최선의 선택을 이어나가는 알고리즘 마시멜로 게임의 경우 (한시간 참으면 두개 - 당장 받기를 택하면 1개를 제공하는), 각 상황에서 최선의 선택은 1개를 받는 것이므로 절대 2개를 가질 수 없음 개요 그리디 알고리즘 분류의 문항 로직이나 정보가 크게 과하거나 복잡하진 않음 코드 import sys seqs = list(map(str, sys.stdin.readl..

백준/DFS (깊이 우선 탐색)

[Python] 백준, 16234(DFS)

https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 개요 - 해결법을 고민하다 DFS/BFS 문항이라는 걸 알았다. (감 유지할 겸 아무거나 풀어서 분류를 몰랐다) - 문제가 혼란스러우나 나름 논리적이다. - x, y 설정이 난잡하다. 이 문제의 경우 가로, 세로의 배열 길이가 같아서 기준을 어떻게 잡던 상관이 없었지만, 조금 복잡한 문제를 다룰 때는 이 부분을 유의해야 할 것 같다.(풀 때마다 다른 거 같은 느낌) - 마무리가 낯설..

백준/DFS (깊이 우선 탐색)

[Python] 백준, 2583(DFS)

https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net * 골드 랭크로 승급하게 해 준 고마운 문항. 아직 그 정도 실력은 아닌 것 같지만 나름 뿌듯하다. 개요 - 자료구조가 조금 독특하다. 리스트를 어떻게 설정해야 하는지 고민을 조금 했는데, 구체적인 좌표는 그리 중요하지 않다는 걸 조금 늦게 깨달았다. - 이제 dfs 알고리즘도 조금 익숙해진 것 같다. 함수의 틀은 문제별로 거의 고정인 것 같고, 응용하는 포인트들에서 차이가 나..

Martin Hoffman
'백준' 카테고리의 글 목록