학교 동기들과 알고리즘 스터디를 백준 온라인 저지 사이트를 이용하여 진행한지 한 달하고도 절반 정도의 시간이 흘렀습니다.처음에는 브론즈 문제도 벅차서 허덕였다보니, 일단 많이 푸는 게 목표였는데.. 지금은 레이팅 쌓는 법을 알게 되었고, 목표가 생기면서 개강 전까지 S
문제가 직관적이고, 유명한 카테고리여서 추가적으로 설명할 점은 크게 없는 것 같다. 처음에는 무작정 배열에다가 값을 때려넣어서 결과를 도출했었는데, 문제를 조금 더 생각 해 보니 굳이 그럴 필요가 없었다. 그래서 배열을 지우고 담아두는 공간은 세 개 만으로 처리 할 수
사실 원래라면 하나하나 변환하는 과정을 직접 구현해서 해결해야겠지만...예전에 써봤던 기능을 사용해서 날로 먹었다.입력을 양식에 맞추고, 기능을 쓴 결과값을 출력 해 준다.
16진수 문제와 나란히 있길래, 이번에도 날로 먹을 수 없을지 고민하다가 결과 - 초기 와 같은 답을 만들었다.하지만 문제가 있었다.주어지는 수의 길이가 333,334까지 될 수 있다는 것.값은 제대로 나오는 것 같은데 범위 문제인가?머리를 싸매면서 온갖 기능들을 찾아
처음에는 12904의 A와 B, 1463의 1로 만들기를 생각하면서 풀었다.갑자기 BFS, Queue에 얽매여서 헤메다가 그냥 에라이 하고 문제를 그대로 흐름에 맞춰서 구현했는데, 정답이여서 놀랐다.알고 보니, 다른 방식으로의 풀이가 많은 문제였다. dp로 푸는 경우도
처음에는 dp로 접근해서 각 케이스를 열심히 저장 해 주다가, 완성이 불가능한 케이스가 없다는 점을 기억해냈다.거꾸로 접근해서 큰 수부터 체크 해 가며 기준 수보다 큰 동전을 제외하고 계산 해 주었다. 입력은 앞에서부터, 사용은 뒤에서부터 하므로 stack을 사용하여
전형적인 2차원 BFS 길찾기 문제 솔루션에 방문 표기와 거리 계산을 한번에 해 주는 방식으로 풀었다. 타일을 기준으로 상하좌우로 갈 수 있기에 - 1 0 +1을 사용하여 표현 해 주었는데, 지금과 같은 코드 반복 대신 묶어서 사용 해 줄 수 있을 것 같다는 생각이 든
처음에는 메모리 생각을 못 하고 2차원 벡터로 구현했다. (최하단 주석)정말 문제 내용을 그대로, 처음부터 검사해서 그 결과를 비교한 후 맥스값을 출력하는 로직이다.메모리 초과가 뜨고 나서야 깨달았다. 입력 값을 다시 보니 애초에 이런 식으로 구현하면 안 되는 것이었구
처음에는 조건을 주어 가며 하려고 했는데, 생각 해 보니 굳이 그러지 않아도 되었다.어차피 더하려고 하는 것이니, 배열에 미리 값을 담아 넣고 반복하며 더해주었다.굉장히 간단한 로직이다.1월 1일이 월요일이므로 0으로 시작하기 편하게 해 주기 위해 일요일부터로 계산 해
지난번에 풀었던 2178을 개선하였다.https://velog.io/@dev_sieun/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AF%B8%EB%A1%9C-%ED%83%90%EC%83%89-%EB%B0%B1%EC%A4%80-21
처음에는 막연히 닫을 때 마다 개수를 더해주면 되겠다, 싶었는데.. 결과 값이 제대로 나오지를 않았다.그래서 예시 출력을 다시 보면서 세어 보았다.레이저만 있는 것은 아무것도 잘리지 않으며, 자른 곳은 2등분된 개수를 세야 한다는 문제가 있었다. 그래서 구분 분기를 주
처음에는 이렇게 베이직하게 푸는 게 맞나..! 싶은 마음도 들었는데, 아무튼 정답이다.정말 원초적으로 분리해서 구현 해 보았다.둘의 크기를 비교 해 가면서 기준값을 계속 더해준다. 둘이 같아지면 같이 공유하는 공배수이다.
시간의 여유가 있어 미리 범위인 1~1000 구간을 구해 저장 해 두고,입력 받은 숫자에서부터 숫자까지의 저장값을 꺼내어 더해주었다.
약수는 짝을 이룬다. 약수와 그 약수의 짝을 곱하면 원래 수가 나온다.하지만 짝은 어떻게 알아야할까? 쉽게 약수를 알아내기 위해서 최소값과 최대값을 곱해주었다.
행렬을 변경하여 출력하되, 데이터가 존재 할 경우에만 출력하게끔 조건을 주었다.!
처음에는 난쟁이 경우의 수를 세워보면서 문제를 풀어보려고 했었는데, 사실 조금 단순하게 생각 해 보면 난쟁이 두 명의 키를 전체 값에서 빼면 되는 문제이다. 그래서 난쟁이 두명의 키를 뺀 값이 100이 되었을 때 값을 출력 해 주게끔 만들었다.
2의 3승은 8이다. 2진수는 뒤에서부터 세개씩 3개씩 묶어 자른 후 계산하면 8진수로 계산되는 부분을 이용해서 문제를 풀었다.따라서 자릿수가 맞지 않는 경우 맞춰주는 작업을 하고 진행 해 주었다.길이가 무한정한 문제로 string 자료형으로 풀어주었다.c
input을 string형태에 입력받고, split 해 주고, 거꾸로 출력 해 주는 간단한 형태이다. split 하는 부분은 일반적으로 통용되는 형태로 보이는 코드를 가져다가 사용했다.
간단한 브론즈 1 문제인데, 너무 복잡하게 풀었나 싶기도...숫자를 문자로 취급하고 자릿수에 따라 제곱연산을 해 주면서 스택을 이용해서 단어뒤집기 때와 비슷하게 풀었다.마지막 자리가 0으로 끝나지 않게 제거 해 준다.
알파벳 개수 세기와 동일한 방식으로 풀었다.배열 자체를 카운팅 해 주는 방식이다.
아직 레이팅이 오르는 범위다 싶어 최근 내내 안 풀었던 브론즈 문제들을 풀면서 요양하다가, 너무 느슨해진 것 같아 잡았다. 기존의 BFS로 날먹 가능하다고 생각하며 풀었었는데, 어림도 없었다. 기존 BFS에서 '루피'라는 데이터가 하나 더 추가되었기 때문이다. 개념이