BoBo World

[Programmers] #181894 - 2의 영역 [Java][C++][Python]

문제 링크 1. 아이디어 값 2가 모두 들어가는 가장 짧은 연속 구간은 첫 2와 마지막 2 사이의 구간이다. 그 바깥은 2를 포함하지 않으므로 잘라내도 되고, 그 안쪽은 양 끝이 2라서 더 줄일 수 없다. 앞에서부터 훑어 첫 2의 위치를, 뒤에서부터 훑어 마지막 2의 위치를 찾은 뒤 두 위치를 양끝으로 하는 구간을 반환했다. 2가 하나도 없으...

[Programmers] #120897 - 약수 구하기 [Java][C++][Python]

문제 링크 1. 아이디어 n의 약수를 오름차순으로 모으는 문제다. 가장 단순한 방법은 1부터 n까지 모든 정수로 n을 나눠 나누어떨어지는지 확인하는 것이다. 작은 수부터 순서대로 훑으므로 결과는 그대로 오름차순이 된다. 좀 더 효율적인 방법으로는 약수의 대칭성을 이용하는 방법이 있다. 약수는 $\sqrt{n}$을 기준으로 쌍을 이룬다(i가...

[Programmers] #120896 - 한 번만 등장한 문자 [Java][C++][Python]

문제 링크 1. 아이디어 문자열 s에 대해 각 알파벳이 몇 번 나오는지 센 다음, 등장 횟수가 정확히 1인 문자만 사전 순으로 모으면 된다. 입력이 소문자로만 이루어지므로 크기 26짜리 카운팅 배열을 활용해서 a부터 z까지 순서대로 확인하면 별도의 정렬 없이도 사전 순으로 결과를 만들 수 있다. 2. 복잡도 ...