본문 바로가기

분류 전체보기228

백준 19637번 IF문 좀 대신 써줘 c++ 풀이 문제 게임 개발자인 밀리는 전투력 시스템을 만들어, 캐릭터가 가진 전투력을 기준으로 칭호를 붙여주려고 한다. 예를 들어, 전투력 10,000 이하의 캐릭터는 WEAK, 10,000 초과 그리고 100,000 이하의 캐릭터는 NORMAL, 100,000 초과 그리고 1,000,000 이하의 캐릭터는 STRONG 칭호를 붙여준다고 하자. 이를 IF문으로 작성한다면 아래와 같이 구현할 수 있다. if power > m; for (int i = 0; i > type >> power; v.push_back({type, power}); } for (int i = 0; i > power; int.. 2023. 12. 31.
백준 1725번 히스토그램 c++ 풀이 문제 히스토그램에 대해서 알고 있는가? 히스토그램은 아래와 같은 막대그래프를 말한다. 각 칸의 간격은 일정하고, 높이는 어떤 정수로 주어진다. 위 그림의 경우 높이가 각각 2 1 4 5 1 3 3이다. 이러한 히스토그램의 내부에 가장 넓이가 큰 직사각형을 그리려고 한다. 아래 그림의 빗금 친 부분이 그 예이다. 이 직사각형의 밑변은 항상 히스토그램의 아랫변에 평행하게 그려져야 한다. 주어진 히스토그램에 대해, 가장 큰 직사각형의 넓이를 구하는 프로그램을 작성하시오. 입력 첫 행에는 N (1 ≤ N ≤ 100,000) 이 주어진다. N은 히스토그램의 가로 칸의 수이다. 다음 N 행에 걸쳐 각 칸의 높이가 왼쪽에서부터 차례대로 주어진다. 각 칸의 높이는 1,000,000,000보다 작거나 같은 자연수 또는 .. 2023. 12. 30.
토비의 스프링 3.1 Vol.1 250p ~ 350p 정리 3.5.3 템플릿/콜백의 응용- 템플릿 / 콜백의 재설계- 제네릭스를 이용한 콜백 인터페이스제네릭스를 적용하여 다양한 오브젝트 타입을 지원하는 인터페이스나 메소드를 정의해 보자.//타입 파라미터를 적용한 LineCallbackpublic inteface LineCallback { T doSomethingWithLine(String line, T value);}//타입 파라미터를 추가해서 제네릭 메소드로 만든 lineReadTemplate()public T lineReadTemplate(String filepath, LineCallback callback, T initVal) throws IOException { ... } 3.7 정리- JDBC와 같은 예외가 발생할 가능성이 있으며 공유 리소스의.. 2023. 12. 30.
백준 17484번 진우의 달 여행 (Small) c++ 풀이 문제 우주비행이 꿈이였던 진우는 음식점 '매일매일싱싱'에서 열심히 일한 결과 달 여행에 필요한 자금을 모두 마련하였다! 지구와 우주사이는 N X M 행렬로 나타낼 수 있으며 각 원소의 값은 우주선이 그 공간을 지날 때 소모되는 연료의 양이다. [예시] 진우는 여행경비를 아끼기 위해 조금 특이한 우주선을 선택하였다. 진우가 선택한 우주선의 특징은 아래와 같다. 1. 지구 -> 달로 가는 경우 우주선이 움직일 수 있는 방향은 아래와 같다. 2. 우주선은 전에 움직인 방향으로 움직일 수 없다. 즉, 같은 방향으로 두번 연속으로 움직일 수 없다. 진우의 목표는 연료를 최대한 아끼며 지구의 어느위치에서든 출발하여 달의 어느위치든 착륙하는 것이다. 최대한 돈을 아끼고 살아서 달에 도착하고 싶은 진우를 위해 달에 도.. 2023. 12. 29.
백준 20920번 영단어 암기는 괴로워 c++ 풀이 문제 화은이는 이번 영어 시험에서 틀린 문제를 바탕으로 영어 단어 암기를 하려고 한다. 그 과정에서 효율적으로 영어 단어를 외우기 위해 영어 단어장을 만들려 하고 있다. 화은이가 만들고자 하는 단어장의 단어 순서는 다음과 같은 우선순위를 차례로 적용하여 만들어진다. 자주 나오는 단어일수록 앞에 배치한다. 해당 단어의 길이가 길수록 앞에 배치한다. 알파벳 사전 순으로 앞에 있는 단어일수록 앞에 배치한다 M보다 짧은 길이의 단어의 경우 읽는 것만으로도 외울 수 있기 때문에 길이가 M이상인 단어들만 외운다고 한다. 화은이가 괴로운 영단어 암기를 효율적으로 할 수 있도록 단어장을 만들어 주자. 입력 첫째 줄에는 영어 지문에 나오는 단어의 개수 N과 외울 단어의 길이 기준이 되는 M이 공백으로 구분되어 주어진다... 2023. 12. 28.
토비의 스프링 3.1 Vol.1 145p ~ 250p 정리 2장. 테스트스프링이 개발자에게 제공하는 가장 중요한 가치 = 객체지향과 테스트2.1 UserDaoTest 다시 보기2.1.1 테스트의 유용성테스트가 성공하면 모든 결함이 제거됐다는 확신을 얻을 수 있음2.1.2 UserDaoTest의 특징- 웹을 통한 DAO 테스트 방법의 문제점1. 모든 레이어의 기능을 다 만들고 나서야 테스트가 가능하다.2. 테스트를 하는 중에 에러가 나면 어디에서 문제가 발생했는지 찾아야 한다.3. 오류가 있을 때 빠르고 정확하게 대응하기가 힘들다. - 작은 단위의 테스트그 대상에만 집중해서 테스트하는 것이 바람직작은 단위의 테스트를 단위 테스트 - 단위 테스트 필요 이유개발자가 설계하고 만든 코드가 원래 의도한 대로 동작하는지를 개발자 스스로 빨리 확인받기 위해서다.2.1.3 U.. 2023. 12. 28.