string padding 처리는 많이 들어보셨을 겁니다. 예를 들어 제가 낸 문제 중에 수인 분당선 문제도 답이 9:0:0인 경우에 09:00:00으로 출력하라고 했었습니다. 앞에 0을 padding을 해서 2자리로 맞추도록 한 것입니다. 그리고 오늘 새로 추가된 이 문제 역시 padding이 들어가 있습니다. 이 두 문제의 공통점은 left padding이였다는 점입니다. 제가 개최한 2회 코테의 1번 문제 또한, string을 long long으로 떨궈내면 여유롭게 해결을 하실 수 있는데요. 문자열을 long long으로 압축하는 방식을 2번 문제의 제 솔루션과 동일하게 하면 당연하게도 틀렸습니다를 보게 됩니다. 왜일까요? 해당 솔루션에 있는 압축 방식을 잘 읽어보면 문자열의 길이가 커질수록 숫자가..
string 검색 결과
카톡방에서 python은 'abc' * 5와 같은 문법이 있는데 자바에는 없는지 물어보셨습니다. java 8에서는 어떻게 쓰는지 잘 모르겠습니다. 아마, 이런 식으로 쓰지 않을까 싶습니다. "abc"를 10번 반복하기 위해서, StringBuilder의 append 메소드를 썼습니다. abc를 10번 반복한다는 것이, abc를 10회 뒤에 추가하는 concat과 같기 때문입니다. 다음에, StringBuilder를 toString으로 변환한 다음에, 출력합니다. 4 ~ 5줄 정도에 구현할 수 있습니다. 실행 결과는 위와 같이 나옵니다. 그런데, java 11부터는 이렇게 하지 않으셔도 됩니다. repeat 메서드는 반복 횟수만 넣으면 됩니다. 6번째 줄의 s.repeat(10)은 문자열 s를 10번 반복..
안녕하세요. 이번 시간에는 Java의 switch 문에 대해 알아보겠습니다. c언어의 switch문하고 다를 것은 없고요. 이번에 제가 낸 문제에서, 쓰면 좋겠다 싶어서 소개를 해 보려고 해요. 이 글에서는 string switch문이 어떻게 돌아가는지를 먼저 소개하고, 어떻게 적용할 수 있는지 알아보겠습니다. string 빼고 나머지는 제가 예전에 c언어 시간에 소개했던 switch문과 동일하므로, 관련 글의 연장선 정도라고 보시면 좋겠습니다. [관련글] c언어 switch문에 대해 알아봅시다. java에서는 String도 switch문이 됩니다. 저만 몰랐을 수도 있겠지만요. 이 프로그램은, 간단합니다. acquire를 입력받으면, 뎁스를 하나 증가시키고 acquire!를 출력합니다. release를..
c++에서 string을 처리할 때, 구분자가 여러 개 붙어 있는 경우 split를 어떻게 할까요? c의 string.h에서는 strtok으로 된다고 하는데. 한 가지 방법 중 하나는, 문자열을 순회하면서, 해당 문자가 구분자인지 검사하는 것입니다. 제 목표는 token_ret 메서드를 구현하는 것입니다. 2번째 인자는 delimiter들을 넘깁니다. 쉽게 말해 구분자인데요. :과 -와 공백을 넘겼습니다. 이들을 기준으로 split 하겠다는 의미입니다. 실행 결과는 위와 같이 나와야 해요. 인풋이 이렇다고 해 봅시다. 양 끝단 처리가 어려울 듯 하니, 더미 2개를 넣읍시다. 하나는 문자열 시작 위치 바로 전인 -1, 다른 하나는 문자열의 끝인 size of string length를 넣을 겁니다. 이 둘..
string을 int로 바꿀 수 없을까요? c_str로 raw pointer를 리턴받고, atoi에 raw_pointer를 넘겨주면 됩니다. 사실 저는 stoi를 알기 전까지 이렇게 했습니다. 예제 프로그램을 보도록 하겠습니다. 저는 string "123"을 정수 123으로 바꾸고 싶습니다. 그렇게 하려고 s.c_str()의 리턴값을 atoi에 넣었습니다. 그러면, 실제 "123"을 들고 있는 위치인 p를 atoi에 넣게 됩니다. atoi는 이 위치부터 NULL이나, '0', ... '9'가 아닌 다른 것을 만날 때 까지 읽게 될 겁니다. 문자열에 대충 이래 저장이 되어 있다고 하면, '1'을 읽고 '2'를 읽고 '3'을 읽고 난 후에 숫자가 아닌 문자가 있으니, break를 걸 겁니다. 따라서, 이 때..
최근댓글