목록분류 전체보기 (44)
시간이 NullNull
재현이는 재민이를 도와서 동아리 장부를 관리하고 있다. 재현이는 영수증을 모아서 동아리의 지출 금액을 세고 있고, 재민이는 재현이가 부르는 액수를 순서대로 적고 있다. 재현이는 가끔 잘못된 수를 부르는 실수를 하는데, 이 때마다 0을 외쳐서, 가장 최근에 재민이가 쓰고 지우지 않았던 수를 지우게 시킨다. 재현이가 모든 수를 부른 후 재민이가 받아 적은 수의 합은 무엇일까? ps. 정말 불쌍하게도 쓰고 지우고 쓰고 지우고를 반복하는 재민이를 위로해줍시다.... 이 문제의 경우 그냥 시키는 대로 코드를 작성하면 된다. 다만 최근에 쓴 것을 지우게 되는데 이때 가장 좋은 것이 stack이기 때문에 stack을 활용하여 코드를 작성해 보았다. 들어오는 수를 다 stack에 넣다가 0이 들어오면 pop을 해주면되..
선표는 가게에서 처음으로 스파게티 면을 샀다. 봉투에 적힌 정보에 따르면, 면을 정확히 B초 동안 삶아야 이상적인 상태의 면이 된다고 한다. 그러나 안타깝게도, 지금 선표집의 모든 시계는 고장이 났다. 그래서 가게에서 모래시계를 하나 사서 집으로 가려고 한다. 가게에는 N개의 모래시계가 있고, i번째 모래시계는 정확히 xi초를 측정할 수 있다. 모래가 다 내려오면 바로 모래시계를 뒤집는 것으로 2xi초, 3xi초, …도 측정할 수 있다. 그러나 나머지 시간은 측정할 수 없다. 선표는 모래시계로는 정확한 시간을 측정할 수 없을 것 같아서, 조금 타협하여 E초 정도의 오차를 허용하려고 한다. 그러므로, 어떤 하나의 모래시계를 구입하여 B – E초에서 B + E초 중 하나를 측정해낼 수 있으면 된다. 구입해도..
경표는 아래와 같이 삼각형 모양으로 숫자를 쌓기로 했다. 1층에는 1개, 2층에는 3개, 3층에는 5개, … 와 같이 쌓는다. 위와 같이 경표는 끝도 없이 피라미드를 쌓을 때, N층의 제일 왼쪽, 오른쪽에 쓰게 될 숫자가 무엇일지 예측해보자. 결국 숫자의 규칙을 찾으면 피라미드를 만들 필요도 없이 숫자를 바로 구할 수 있다. 어... 이 문제의 경우 사실 최대한 몇번째 줄인지를 나타내는 N에 대해서 연관지어서 생각한다면 금방 알 수 있다. Tip. 이런 문제의 경우 숫자가 매우 불규칙해 보이므로 1을 더하거나 빼고 그 숫자를 다시 무언가를 해보도록 하자 아래에는 이 문제의 소스 코드이다. import java.io.BufferedReader; import java.io.BufferedWriter; imp..
저도 잠깐 바빠서 알고리즘 손 놓다가 오랜만에 알고리즘 다시 푸는데 (취준을 위해 문제 풀다가 기록겸 블로그 운용겸 글을 올리곤 했었는데 작년 하반기 취뽀하고 논다고 뜸해졌네요! 하하) 그런 의미로 다시 문제 열심히 풀어보기로 했습니다.... 감을 찾아야 다시 B형을 도전할테니 ㅠ 여기서 부터 본문 결론적으로 만약에 split 함수를 쓰시다가 특수문자 +, & 기타등등을 하다가 컴파일 에러등이 나면서 안된다면 앞에 \\를 적어주세요 예를들어 9+8+5+9+2 를 br.readLine().split("+"); 을 하면 에러가 뜨길래 검색해보니 br.readLine().split("\\+"); 로 해주시면 됩니다!
태영이는 N개의 다이아몬드를 가지고 있다. 각 다이아몬드 크기는 1 이상 10000 이하의 자연수로 나타낼 수 있다. 태영이는 N개의 다이아몬드 중 몇 개를 골라, 애인에게 선물로 주려고 한다. 한편, 태영이는 고른 다이아몬드의 크기가 뒤죽박죽이면 애인이 좋아하지 않을 것이라고 생각하여, 고른 다이아몬드 중 크기 차가 K 이하인 것들을 묶음으로 가져가려고 한다. (단, 묶음은 여러 묶음일 수 있다.) 태영이가 애인에게 선물할 수 있는 다이아몬드의 최대 개수는 얼마인가? 이 문제는 D4 답게 최소한의 효율만 생각하면서 풀었다. 완탐을 하더라도 가능은 할 것 같으나 별다른 좋은 수가 떠오르지 않아 적당히 효율만 챙기면서 하였다. 1. 완탐을 할 것이나 그나마 조금의 효율을 위해 다이아 크기의 min값과 ma..