전체 글 50

[BOJ1248] 맞춰봐

1. 문제 https://www.acmicpc.net/problem/1248 2. Note 2.1. 완전탐색 - 백트래킹 모든 경우의 수를 구하고 이를 문제의 조건과 비교하는 문제에 익숙해져서 그런지 이런 방식으로만 문제를 해결하려 했습니다. 당연하게도 시간초과를 받았습니다. 적절히 가지치기를 수행해서 문제의 조건에 어긋나는 경우를 사전에 제거하는 백트래킹으로 접근해야 했습니다. 2.2. 문제 접근 태도 문제를 풀 때, 먼저 제한 시간을 보고 입력을 어떤 알고리즘에 욱여넣을(?) 수 있는지 확인하곤 합니다. 시간복잡도 분석은 물론 중요합니다. 그러나 문제의 본질에 집중하지 않고 익숙해진 알고리즘 유형에 끼워맞춰서 시간 내에 풀 수 있는지 확인하는 나쁜 버릇이 들었습니다. 문제에 좀 더 집중해야 합니다. ..

Problem Solving 2020.04.22

JavaScript 정규표현식에서 \b 와 \B

Word Boundary \b JS 정규표현식에서 \b는 word boundary이며, 이름 그대로 word character(\w)의 경계를 말합니다. 즉, 문자열에서 어느 한쪽은 word character([_a-zA-Z0-9])이고 다른 쪽은 non-word character([^_a-zA-Z0-9])인 지점들은 모두 word boundary로 볼 수 있습니다. 또한, word character와 문자열의 시작(^) 또는 끝($)의 사이 역시 word boundary로 볼 수 있습니다. 주의할 점은 \b는 어떤 지점을 의미하므로 특정 문자와 매칭되는 것이 아니라는 겁니다. Non-word Boundary \B \B는 non-word boundary입니다. \B는 non-word character의 ..