본문 바로가기

c++

프로그래머스 코딩테스트 연습 -스킬트리 LV2: (C++) 1.문제 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다. 선행 스킬 순서 skill과 유저들이 만든 스킬트리1를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return 하는 solution 함수를 작성해주세요. 제한 조건 스.. 더보기
프로그래머스 코딩테스트 연습 -쇠막대기 LV2: (C++) 1.문제 여러 개의 쇠막대기를 레이저로 절단하려고 합니다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자릅니다. 쇠막대기와 레이저의 배치는 다음 조건을 만족합니다. - 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있습니다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓습니다. - 각 쇠막대기를 자르는 레이저는 적어도 하나 존재합니다. - 레이저는 어떤 쇠막대기의 양 끝점과도 겹치지 않습니다. 아래 그림은 위 조건을 만족하는 예를 보여줍니다. 수평으로 그려진 굵은 실선은 쇠막대기이고, 점은 레이저의 위치, 수직으로 그려진 점선 화살표는 레이저의 발사 방향입니다. 이러한 레이저와 쇠막대기의 배.. 더보기
프로그래머스 코딩테스트 연습 -기능개발 LV2: (C++) 1.문제 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도는 100 이하의 자연.. 더보기
프로그래머스 코딩테스트 연습 -다리를 지나는 트럭 LV2: (C++) 1.문제 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다. ※ 트럭이 다리에 완전히 오르지 않은 경우, 이 트럭의 무게는 고려하지 않습니다. 예를 들어, 길이가 2이고 10kg 무게를 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 경과 시간다리를 지난 트럭다리를 건너는 트럭대기 트럭 0 [] [] [7,4,5,6] 1~2 [] [7] [4,5,6] 3 [7] [4] [5,6] 4 [7] [4,5] [6] 5.. 더보기
프로그래머스 코딩테스트 연습 - 124 나라의 숫자 LV2: (C++) 1.문제 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. 예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다. 10진법124 나라10진법124 나라 1 1 6 14 2 2 7 21 3 4 8 22 4 11 9 24 5 12 10 41 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요. 제한사항 n은 500,000,000이하의 자연수 입니다. 2.입력 n result 1 1 2 2 3 4 4 11 소스코드 #include #include .. 더보기
코딩테스트 문자열,배열 문제 정리 #include #include #include using namespace std; char FirstNoneRepeat(string str); //반복되지 않는 첫번쨰 문자 찾기(map) string FlipString(string str); //문자열 뒤집기(전체) string FlipString(int start, int end, string& str); //원하는 자리만큼 flip string RemoveChar(string str, string rev); // 문자열에서 특정 문자 없애기 string FlipWordBuf(string str); //단어뒤집기 임시버퍼 사용 string FlipWordNoBuf(string str); //단어뒤집기 기존 문자열사용 string IntToStrin.. 더보기
오브젝트별 트리형식으로 출력 (2020 01 21) Main 파일 APP :: 매프레임 루프해 명령큐에 있는 메세지를 확인하고 처리 , +오브젝트 생성 (PeekMessage) Camera :: 카메라 행렬과 프로젝션을 이용해 카메라 위치를 조절하는 클래스 Texture :: 텍스쳐 리소스와 리소스 뷰를 생성해서 바인딩하는 클래스 GDIManager :: 윈도우즈의 핵심 모듈 중의 하나로 출력과 관련된 기능을 담당하는 클래스 Keyboard :: 어떤 키보드의 키를 입력 받았는지 확인 Mouse :: 마우스 키 입력을 받았는지 확인 Timer :: 프레임 반복을 위한 타이머 메소드 (C++11에서 지원하는 시간라이브러리 chorno 사용) Window :: 윈도우 객체 생성하고 키보드 마우스 객체도 생성, 메세지 프로시저 WinMain :: 메인 함수 I.. 더보기
모델링 위치 회전 조절 UI, 모델링 로드 (2020 01 17) Main 파일 APP :: 매프레임 루프해 명령큐에 있는 메세지를 확인하고 처리 , +오브젝트 생성 (PeekMessage) Camera :: 카메라 행렬과 프로젝션을 이용해 카메라 위치를 조절하는 클래스 Texture :: 텍스쳐 리소스와 리소스 뷰를 생성해서 바인딩하는 클래스 GDIManager :: 윈도우즈의 핵심 모듈 중의 하나로 출력과 관련된 기능을 담당하는 클래스 Keyboard :: 어떤 키보드의 키를 입력 받았는지 확인 Mouse :: 마우스 키 입력을 받았는지 확인 Timer :: 프레임 반복을 위한 타이머 메소드 (C++11에서 지원하는 시간라이브러리 chorno 사용) Window :: 윈도우 객체 생성하고 키보드 마우스 객체도 생성, 메세지 프로시저 WinMain :: 메인 함수 I.. 더보기
포인트 라이트, 모델링 로드, assimp 적용, UI 수정 (2020 01 14) APP :: 매프레임 루프해 명령큐에 있는 메세지를 확인하고 처리 , +오브젝트 생성 (PeekMessage) Camera :: 카메라 행렬과 프로젝션을 이용해 카메라 위치를 조절하는 클래스 Texture :: 텍스쳐 리소스와 리소스 뷰를 생성해서 바인딩하는 클래스 Sampler :: 샘플러 선언 (필터) 및 바인딩하는 클래스 GDIManager :: 윈도우즈의 핵심 모듈 중의 하나로 출력과 관련된 기능을 담당하는 클래스 CustomException :: 예외처리용, 예외발생시 메세지박스 띄움 Keyboard :: 어떤 키보드의 키를 입력 받았는지 확인 Mouse :: 마우스 키 입력을 받았는지 확인 Timer :: 프레임 반복을 위한 타이머 메소드 (C++11에서 지원하는 시간라이브러리 chorno 사.. 더보기
ImGui 연결, 텍스쳐 샘플링 적용 (2020 01 07) APP :: 매프레임 루프해 명령큐에 있는 메세지를 확인하고 처리 , +오브젝트 생성 (PeekMessage) +Camera :: 카메라 행렬과 프로젝션을 이용해 카메라 위치를 조절하는 클래스 +Texture :: 텍스쳐 리소스와 리소스 뷰를 생성해서 바인딩하는 클래스 +Sampler :: 샘플러 선언 (필터) 및 바인딩하는 클래스 +GDIManager :: 윈도우즈의 핵심 모듈 중의 하나로 출력과 관련된 기능을 담당하는 클래스 CustomException :: 예외처리용, 예외발생시 메세지박스 띄움 Keyboard :: 어떤 키보드의 키를 입력 받았는지 확인 Mouse :: 마우스 키 입력을 받았는지 확인 Timer :: 프레임 반복을 위한 타이머 메소드 (C++11에서 지원하는 시간라이브러리 chor.. 더보기