본문 바로가기

코딩일기

PS 알고리즘 공부 한달차(1~30일) - 느낀점, 생각 정리

728x90

한달차

- 푼 문항 124문항

-solved.ac

 

- 목표했던 골드는 찍었지만, 아직 부족한 점을 너무나도 많이 느낀다.

- 현재는 완전 탐색(브루트포스)를 풀고 있는 중이다. plzrun 님의 블로그에 나와있는 코스를 한달째 밟고 있는데, 아직 완탐 부분이 조금 남아 있다. 아마 학교 조교와 오픽 준비를 안했더라면 저 부분들도 다 풀 수 있었을텐데, 4주는 넘기고 약 5주를 바라봐야 할 것 같다.

- 개인적으로 제일 어렵다고 느끼는 파트들을 2개 꼽자면 dp 와 완전탐색이다. 일단 완전탐색은, 어떤 문제를 보면 이걸 bfs dfs로 풀어야 되겠다라던지, dp로도 풀 수 있겠다 라던지 등등의 감각은 조금씩 생기는것 같은데, 구현 능력이 조금씩 떨어 지는 것 같다. 

 

오늘 풀다가 벽을 느낀 문제가 하나 있다.

삼성 sw 역량테스트 기출문제이다. 

https://www.acmicpc.net/problem/13460

 

13460번: 구슬 탈출 2

첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' 로 이루어져 있다. '.'은 빈 칸을 의미하고, '#'은 공이 이동할 수 없는 장애물 또는 벽을 의미하며, 'O'는 구멍의 위치를 의미한다. 'R'은 빨간 구슬의 위치, 'B'는 파란 구슬의 위치이다. 입력되는 모든 보드

www.acmicpc.net

나는 오늘 이 문제를 푸는데 실패했다. 

구체적으로는, 상하좌우로 구슬을 옮기는 것을 for문을 통해 bfs로 구현해야 한다는 것까지는 감이 왔는데,

벽에 닿을 때까지 구슬을 이동 시키는 구체적인 코드라던지, 빨간 구슬과 파란 구슬이 겹쳐서 이동하는 경우의 처리 방식이라던지 하는 '구현 능력'이 참 부족한거같다..

 

특히 완전탐색쪽 문제들 풀면서 이런걸 많이 느낀거 같아서 조금 답답하다..

이런 구현능력 베이스를 깔아줄만한 문제들을 조금 많이 풀어보고 다시 도전해 보고 싶다.

완전탐색만 계속 쳐다보다가 너무 힘들어서 주저리주저리 써봤다.

 

힘내서 남은 한달 달려보자.

2월달에는 프로그래머스랑 백준 병행하면서 공부할 예정이다.

개강하기 전에 많이 실력 올려놓고 싶다.