BaekJoon - 1012번: 유기농 배추 (그래프, 탐색)
·
Coding Test/BaekJoon_Python
DFS 문제를 통해 여러 시행착오를 거칠 필요가 있다고 생각했던 나는 한 문제를 더 찾아서 풀기 시작했고, 재귀 함수를 이용했기에 발생했던 런타임 에러가 발생했다 해결법도 찾았고, 그 방법까지 해서 이번 글에 포스팅하려고 한다 문제 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 문제 분석 이 문제는 DFS를 이용하여 블록단위 탐색을 이용하면 되지만 몇 가지 유의사항이 존재한다 그래프 형태로 존재하는 것이 아닌 좌표단위로 존재하는 것 -> 가상의 그래프 맵을 만든다 배추밭이 굉장히 넓어졌을 때 재귀를 이용할 경우 깊이의 ..
BaekJoon - 2667번: 단지번호붙이기 (그래프, 탐색)
·
Coding Test/BaekJoon_Python
SM 마에스트로 준비가 한창인 와중, DFS에 대해 자신감이 생겼다 싶어서 도전 해 본 문제이다 한 번에 맞춰 기분이 좋은 문제였다 문제 문제 분석 이 문제는 DFS를 이용해서 풀 수 있다. 재귀적인 방법을 통해 하나를 발견하면 상, 하, 좌, 우로 이동하며 재탐색을 하는 과정을 거친다 그리고 DFS 한 번 실행될 때마다 단지 하나가 1 -> 0으로 바뀌므로 그 타이밍에 count + 1 하는 방법을 생각했다 후에 한 DFS 사이클이 끝날 때마다 count를 초기화시키는 방법으로 단지 별 건물 수를 세었다 코드 작성 N = int(input()) house = [] for i in range(N): house.append(list(map(int, input()))) # 단지의 건물 개수를 담을 변수 co..
BaekJoon - 6550번: 부분 문자열 (문자열, 그리디 알고리즘)
·
Coding Test/BaekJoon_Python
분명 모든 테스트 케이스는 다 제대로 된 답변이 뜨는데 왜 이 문제는 정답이 아니라고 할까? 라고 생각을 했었다 하지만 이는 문제를 또다시 제대로 읽지 못 한 나의 잘못으로 인해 쌩 고생을 하게 되었고, 결국 생각지도 못한 곳에서 해결방법을 찾아내었다 문제 6550번: 부분 문자열 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문자열 s 와 t가 빈칸을 사이에 두고 들어온다. s와 t의 길이는 10만을 넘지 않는다. www.acmicpc.net 문제 발생 지점 여기서 나는 모든 케이스에 대한 알고리즘을 잘 풀었었다 하지만 '입력은 여러 개의 테스트 케이스로 이루어져 있다'에 대한 부분을 간과하였고, 이 부분을 해결하자 문제가 해결되었다 코드 작성 # 풀이..
BaekJoon - 14584번: 암호 해독 (문자열, 브루트포스 알고리즘)
·
Coding Test/BaekJoon_Python
SW 마에스트로 1차코테 문제집의 두 개 있는 암호 해독 문제 중 첫 번째이다 1차코테인데 어렵겠어? 하고 들어갔다가 1시간을 붙잡고 있는 대참사가 벌어졌었다 문제 14584번: 암호 해독 로마의 장군 카이사르는 로마군의 작전을 적이 모르게 하기 위하여 암호를 사용했다. 카이사르는 다음과 같이 문장에 있는 모든 알파벳 글자를 몇 칸 뒤의 알파벳으로 바꾸는 방식으로 암호를 www.acmicpc.net 문제해석 문제 잘 읽어보기 문제 초반에 나와있는 17칸 뒤를 믿지 말 것 당신은 카이사르가 어떤 방법으로 문장을 암호화하는지는 알고 있지만 카이사르가 몇 칸 뒤의 알파벳으로 바꾸는지는 모른다. -> 결론은 알파벳을 하나씩 뒤로 밀어보면서 대조 해보아야 한다 N개의 사전 단어 중 하나라도 들어가 있다면 조건 충..
BaekJoon - 5597번: 과제 안 내신 분..? (1차원 배열, PYTHON)
·
Coding Test/BaekJoon_Python
과제를 해 온 사람은 이렇게나 많은데.. 그렇다면 안 해 온 사람은 어떻게 알아낼까?? 이에 대한 문제를 풀어보도록 하겠다 ※ 한 번 한 번 예제를 돌려보기가 굉장한 노가다인 점, 유의하길 바란다 ※ 안한 사람 = Someone Who didn't 문제 링크 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 코드 작성 순서 제출 한 과제 목록을 불러올 list 생성 전체 학생 번호 list 생성 제출한 학생 목록 list에 넣기 전체 학생 목록 list에 넣기 전체 학생 목록과 제출한 학생 목록의 ..
BaekJoon - 10807번: 개수 세기 (1차원 배열, PYTHON)
·
Coding Test/BaekJoon_Python
찾고자 하는 정수를 찾는 프로그램을 짜는 문제이며, 생각보다 간단하게 풀 수 있다 ※ 정수 = essence 문제 링크 10807번: 개수 세기 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거 www.acmicpc.net 코드 작성 순서 주어진 정수 N 입력하기 정수를 담을 list 생성하기 찾으려는 정수 v 입력받기 list에서 v를 count한 값 출력하기 # 1.주어진 정수 N 입력 N = int(input()) # 2.정수를 담을 list생성 essence = list(map(int, input().split())) # 3.찾으려는 정수 v 입..