구름톤 챌린지 16

[구름톤 챌린지] 6일차 - 문자열 나누기 [Python]

풀이 입력받은 문자열 S로 만들 수 있는 모든 부분 문자열(list_subStr) 쌍 을 loop를 돌며 구간을 업데이트해 만들어주고, 모든 부분 문자열에 대해 중복된 부분 문자열을 제거한 후 정렬해 dict으로 변환해주었다.(dict_subStr) 이제 어떤 부분 문자열이 몇 번째 부분 문자열인지(몇 점인지) O(1) 안에 구할 수 있다. 다시 처음에 구했던 list_subStr의 부분 문자열 쌍들을 dict_subStr와 매칭시키며 점수를 구해 최고 점수를 가지는 부분 문자열 쌍을 찾으면 된다. 출처 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io

PS 2023.08.21

[구름톤 챌린지] 5일차 - 이전수 정렬 [Python]

풀이 1주차 문제 중 처음으로 정답률이 90% 아래로 떨어진 문제다. 아마도 2진수에 대한 이해와, 정렬 조건이 두개라는 부분에서 실수하는 듯 하다. Python으로 풀이했기 때문에 단순히 bin으로 10진수를 2진수 문자열로 변환 후 '1'의 개수를 세주었다. 동시에, 1의 개수가 동일하다면 원래의 수를 기준으로 내림차순 정렬해야되기 때문에 (2진수 중 1의 개수, 원래 수) 라는 쌍으로 새로운 리스트를 만든 후 내림차순 정렬해주어 풀이했다. 결과로 입력받은 K번째 수의 원래수를 출력해주자. 만약, 이진수 중 1의 개수를 구해주는 내장함수가 없거나, 최적화 하고싶다면 아래와 같이 비트1의 개수를 구해주는 함수를 만들어서 풀이하면 된다. 단, 문제에서 주어진 수들의 범위는 2^20 에, 최대 50만개 이..

PS 2023.08.18

[구름톤 챌린지] 4일차 - 완벽한 햄버거 만들기 [Python]

풀이 주어진 햄버거의 맛이 bitonic sequence을 이루는지 판별하는 문제다. 이전 수와 현재 수가 동일한 경우는 상관이 없어 조건에서 제외했다. 만약 오름차순이다가 내림차순이면 reverse를 True로 바꾼 후 bitonic sequence가 성립하지 않는 수가 나올 때 까지 검사를 실행해주었다. 만약, N개의 요소를 검사하며 전부다 성립했다면, K의 합을 출력해주자. 출처 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io

PS 2023.08.18

[구름톤 챌린지] 3일차 - 합 계산기 [Python]

풀이 N개의 계산식을 입력받아 얻은 정수 결과값의 합을 출력하면 된다. 나누기의 경우 문제에서 조건이 주어지지 않았지만, 예시1, 2를 통해 나눗셈의 결과는 정수로 가정하고 풀이했다. 아래와 같은 입력에 대해 모호한 점이 있다. input 1 3 / 1 3 / 1 output 2 or 3 eval을 사용해 연산 기호에 따른 별도의 처리 없이 합을 구해주었다. 출처 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io

PS 2023.08.16