Problem Solving
브루트 포스
브루트 포스
2020.06.19목표 브루트 포스 알고리즘의 특징과 한계를 설명할 수 있다. 1. 브루트 포스란 무엇인가? 브루트 포스는 모든 경우의 수를 다 시도해보는 방법이다. 이론상으로는 모든 경우를 다 시도해보기 때문에 못 푸는 문제가 없지만 시간상의 문제로 인해 불가능하다고 판단해야 하는 경우가 많다. 브루트포스로 해결할 수 있는 문제 중 가장 친숙한 예로는 자물쇠 풀기가 있다. 비밀번호가 4자리인 자물쇠를 푸는방법은 어떤것이 있을까? 물론 비밀번호를 알고있다면 가장 빠르게 풀겠지만, 모른다고해서 못푸는것은 아니다. 왜냐하면 모든 4자리 경우의수를 자물쇠에 대입해보면 되기 때문이다. 4자리 비밀번호를 맞춰야 하는 경우, 0000 ~ 9999까지 총 10,000개를 시도해보면 답을 구할 수 있다. 비밀번호 입력을 1번 시도하는데..
[Java] 백준 1406번 문제 - 에디터
[Java] 백준 1406번 문제 - 에디터
2020.02.29에디터 [1406번 링크] 문제 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 '커서'라는 것이 있는데, 커서는 문장의 맨 앞(첫 번째 문자의 왼쪽), 문장의 맨 뒤(마지막 문자의 오른쪽), 또는 문장 중간 임의의 곳(모든 연속된 두 문자 사이)에 위치할 수 있다. 즉 길이가 L인 문자열이 현재 편집기에 입력되어 있으면, 커서가 위치할 수 있는 곳은 L+1가지 경우가 있다. 이 편집기가 지원하는 명령어는 다음과 같다. 커맨드 설명 L 커서를 왼쪽으로 한 칸 옮김 (커서가 문장의 맨 앞이면 무시됨) D 커서를 오른쪽으로 한 칸 옮김 (커서가 문장의 맨 뒤이면 무시됨) B 커서 왼..