목록코딩테스트 (112)
Deff_Dev
(재귀함수) 2진수 변환 어떤 $10$진수 $n$이 주어지면 $2$진수로 변환해서 출력하시오. 예) 10 -----> 1010 0 -----> 0 1 -----> 1 2 -----> 10 1024 -----> 10000000000 이 문제는 반복문을 이용하여 풀 수 없습니 codeup.kr 문제 이 문제는 재귀 함수를 이용하여 10진수 정수인 n을 2진수로 변환해서 출력하는 문제이다. 풀이 n이 7이라 한다면 "1"+ to_string(3 % 2)+ to_string(7 % 2) => 111이 된다. #include #include // https://codeup.kr/problem.php?id=1920&rid=0 using namespace std; string binaryNumber(int num) ..
계단 오르기 2 계단의 수 n이 입력된다. ( 1 n; // memo 배열 초기화 vector memo(n + 1, -1); cout
기억력 테스트 2 첫째줄에 N이 입력된다. (1 m; for (int i = 0; i > num; if (memorys[num]) { // 해당 숫자가 true 일 때 1 출력 cout n; unordered_set memorys; // 맵 대신 해시셋을 사용하여 빠른 검색 가능 for (int i = 0; i > num; memorys.insert(num); // set에 숫자 추가 } cin >> m; for (int i = 0; i > num; if (memorys.find(num) != memorys.end()) { // 숫자가 발견되면 1 출력 cout
계단 오르기 첫째 줄에 계단의 개수가 주어진다. 둘째 줄부터 한 줄에 하나씩 제일 아래에 놓인 계단부터 순서대로 각 계단에 쓰여 있는 점수가 주어진다. 계단의 개수는 300이하의 자연수이고, 계단에 쓰여 codeup.kr 문제 이 문제는 일정한 점수가 쓰여있는 계단에서 마지막 계단까지 올라가는 문제로, 계단을 오를 때는 3가지 규칙이 존재한다. 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 연속된 세 개의 계단을 모두 밟아서는 안 된다. 단, 시작점은 계단에 포함되지 않는다. 마지막 도착 계단은 반드시 밟아야 한다. 주어진 각 계단의 점수를 이용하여 얻을 수 있는 총 점수의 최대값을 구한다. 풀이 DP를 사용하여 각 계단 별 최대 점수를 구해 n번째 계단까지의 최대 점수를 구한다. 식을 세우기 전에..
거스름돈 II $500$원 $1$개, $100$원 $2$개, $10$원 $3$개로 지불하는 것이 최소이다. 따라서 답은 $6$ codeup.kr 문제 이 문제는 자동판매기에서 거스름돈을 돌려줄 때, 최소한의 동전을 사용하여 거스름돈을 돌려주는 방법을 구하는 문제이다. 풀이 그리디로 접근하기 쉬운 문제지만, 그리디로 문제를 풀면 정답이 아닌 경우가 발생한다. 예를 들어, 동전 종류가 1원, 3원, 4원이 있고 거슬러 주어야 할 돈이 6원이라면, 그리디 알고리즘은 4원 1개, 1원 2개로 거슬러준다. 하지만 최적의 해는 3원 2개이기 때문에 틀린다. 그래서 이 문제는 DP (다이나믹 프로그래밍)을 사용해서 풀어야한다. DP를 이용하여 거슬러 줘야할 금액까지의 최소 갯수를 저장하면서 목표 금액의 최소 거스름돈..
[기초-2차원배열] 바둑판에 흰 돌 놓기(설명) C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용 codeup.kr 문제 이 문제는 흰 돌의 위치를 입력 받아 19 * 19 바둑판에 배치하는 문제이다. 풀이 2차원 배열을 0으로 초기화하고 흰 돌 좌표를 입력과 동시에 바둑판에 배치하는 방법으로 풀이했다. #include using namespace std; //https://codeup.kr/problem.php?id=1096&rid=0 int main() { int map[20][20] = { 0, }; // 바둑판 배열 0으로 초기화 int n,x ,y; ..
일곱 난쟁이 아홉 개의 줄에 걸쳐 일곱 난쟁이의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러가지인 경우에는 아무거나 출력한다. codeup.kr 문제 이 문제는 아홉 난쟁이들 중 키의 합이 100인 일곱 난쟁이들을 찾는 문제이다. 풀이 아홉 난쟁이들 중에서 키의 합에서 두 난쟁이의 키를 뺀 값이 100이 되는 두 난쟁이를 찾는 방법으로 풀이했다. // 처음 풀이한 코드 #include #include using namespace std; // https://codeup.kr/problem.php?id=3008 int dwarfs[9] = { 0, }, sum = 0; void Func() { for (int i = 0; i < 9; ..
지그재그 배열 3 하나의 정수 n을 입력받아 n*n사각형에서 다음과 같은 삼각형 모양으로 지그재그로 출력하시오. 예를 들어, n이 5이면, 0 0 0 0 5 0 0 0 4 6 0 0 3 7 12 0 2 8 11 13 1 9 10 14 15 를 출력한다. codeup.kr 문제 이 문제는 정수 n을 입력받아 n * n 사각형을 만들 때, 다음과 같은 삼각형 모양으로 지그재그로 출력하는 문제이다. n이 5일때, 0 0 0 0 5 0 0 0 4 6 0 0 3 7 12 0 2 8 11 13 1 9 10 14 15 왼쪽 아래에서 오른쪽 위로 올라간 후 다시 왼쪽 아래로 내려오는 것을 반복한다. 풀이 while 문과 bool 변수 isRight를 이용하여 isRight가 true일 때 오른쪽 위로 가고, false..