본문 바로가기
반응형

Study/Algorithm15

[코테챌린지] 부등호 📌 구해야 하는 정답k개의 부등호가 주어집니다. (예: 3개의 부등호 -> 4개의 숫자가 필요)부등호의 순서를 만족하는 최대값과 최소값을 구하는 문제입니다.📌 풀이숫자의 순열을 생성:주어진 부등호에 맞는 숫자 조합을 찾기 위해 0부터 9까지의 숫자 중에서 필요한 개수만큼 순열을 생성합니다.부등호 조건을 만족하는지 확인:각 순열에 대해 부등호 조건을 확인하고, 부등호 조건을 만족하면 그 순열을 사용합니다.최대값과 최소값을 구함:조건을 만족하는 숫자 중에서 가장 큰 값과 작은 값을 찾아 출력합니다.순열을 이용하는 경우, 시간 복잡도는 O(n!) 가 됩니다.예를 들어, k=9일 경우에는 10개의 숫자 중에서 순열을 구하는 방식이므로, 최대 10!이 발생할 수 있습니다.10!=3,628,800 이므로 충분히.. 2024. 9. 12.
[코테 챌린지] 13일차. 수찾기 입력: 1. 첫 줄에 배열의 크기 N이 주어집니다. (1 ≤ N ≤ 100,000)2. 두 번째 줄에 N개의 정수로 이루어진 배열 A가 주어집니다. 배열의 원소는 중복되지 않습니다.3. 세 번째 줄에 M이 주어집니다. (1 ≤ M ≤ 100,000)4. 네 번째 줄에 M개의 정수로 이루어진 배열 B가 주어집니다. 배열의 원소는 중복되지 않습니다.출력: - 배열 B의 각 원소가 배열 A에 존재하면 1, 존재하지 않으면 0을 출력합니다.📌 문제 탐색하기 우리가 문제를 이해해가는 과정을 작성하시면 됩니다.- 문제에서 구해야 하는 최종 정답은 무엇인지 탐색한 과정- 그 정답을 구하기 위해 어떻게 코드를 구현해야 할지 고민한 과정- 문제에 들어오는 범위를 파악하며 어떤 알고리즘을 쓸 수 있을지 고민해 가는 과정.. 2024. 8. 17.
[코테 챌린지] 11일차. 거스름돈 춘향이는 편의점 카운터에서 일한다.손님이 2원짜리와 5원짜리로만 거스름돈을 달라고 한다. 2원짜리 동전과 5원짜리 동전은 무한정 많이 가지고 있다. 동전의 개수가 최소가 되도록 거슬러 주어야 한다. 거스름돈이 n인 경우, 최소 동전의 개수가 몇 개인지 알려주는 프로그램을 작성하시오.예를 들어, 거스름돈이 15원이면 5원짜리 3개를, 거스름돈이 14원이면 5원짜리 2개와 2원짜리 2개로 총 4개를, 거스름돈이 13원이면 5원짜리 1개와 2원짜리 4개로 총 5개를 주어야 동전의 개수가 최소가 된다.- 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다.- 거스름돈 동전의 최소 개수를 출력한다. 만약 거슬러 줄 수 없으면 -1을 출력한다.📌 문제 탐색하기 우리가 문제를 이해해가는 과정을 작.. 2024. 8. 15.
[코테 챌린지] 10일차. 컵홀더 십년이면 강산이 변한다. 강산이네 동네에 드디어 극장이 생겼고, 강산이는 극장에 놀러갔다. 매점에서 콜라를 산 뒤, 자리에 앉은 강산이는 큰 혼란에 빠졌다. 양쪽 컵홀더를 이미 옆 사람들이 차지했기 때문에 콜라를 꽂을 컵 홀더가 없었기 때문이다. 영화를 보는 내내 콜라를 손에 들고 있던 강산이는 극장에 다시 왔을 때는 꼭 콜라를 컵 홀더에 놓겠다는 다짐을 한 후 집에 돌아갔다.극장의 한 줄에는 자리가 N개가 있다. 서로 인접한 좌석 사이에는 컵홀더가 하나씩 있고, 양 끝 좌석에는 컵홀더가 하나씩 더 있다. 또, 이 극장에는 커플석이 있다. 커플석 사이에는 컵홀더가 없다.극장의 한 줄의 정보가 주어진다. 이때, 이 줄에 사람들이 모두 앉았을 때, 컵홀더에 컵을 꽂을 수 있는 최대 사람의 수를 구하는 프로그.. 2024. 8. 14.
[코테 챌린지] 9일차. 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성하시오. - 입력은 한줄로 이루어져있고, 타로가 지불할 돈(1 이상 1000미만의 정수) 1개가 쓰여져있다.- 제출할 출력 파일은 1행으로만 되어 있다. 잔돈에 포함된 매수를 출력하시오.📌 문제 탐색하기 우리가 문제를 이해해가는 과정을 작성하시면 됩니다.- 문제에서 구해야 하는 최종 정답은 무엇인지 탐색한 과정- 그 정답을 구하기 위해 어떻게 코드를 구현해야 할지 고민한 과정- 문제에 들.. 2024. 8. 13.
[코테 챌린지] 8일차. 빙고 빙고 게임은 다음과 같은 방식으로 이루어진다.먼저 아래와 같이 25개의 칸으로 이루어진 빙고판에 1부터 25까지 자연수를 한 칸에 하나씩 쓴다.다음은 사회자가 부르는 수를 차례로 지워나간다. 예를 들어 5, 10, 7이 불렸다면 이 세 수를 지운 뒤 빙고판의 모습은 다음과 같다.차례로 수를 지워가다가 같은 가로줄, 세로줄 또는 대각선 위에 있는 5개의 모든 수가 지워지는 경우 그 줄에 선을 긋는다.이러한 선이 세 개 이상 그어지는 순간 "빙고"라고 외치는데, 가장 먼저 외치는 사람이 게임의 승자가 된다.철수는 친구들과 빙고 게임을 하고 있다. 철수가 빙고판에 쓴 수들과 사회자가 부르는 수의 순서가 주어질 때, 사회자가 몇 번째 수를 부른 후 철수가 "빙고"를 외치게 되는지를 출력하는 프로그램을 작성하시오.. 2024. 8. 12.
[코테 챌린지] 7일차. 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x > p 그리고 y > q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 사람의 덩치가 각각 (56, 177), (45, 165) 라고 한다면 A의 덩치가 B보다 큰 셈이 된다. 그런데 서로 다른 덩치끼리 크기를 정할 수 없는 경우도 있다. 예를 들어 두 사람 C와 D의 덩치가 각각 (45, 181), (55, 173)이라면 몸무게는 D가 C보다 더 무겁고, 키는 C가 더 크므로, "덩치"로만 볼 때 .. 2024. 8. 11.
[코테 챌린지] 6일차. 나무조각 동혁이는 나무 조각을 5개 가지고 있다. 나무 조각에는 1부터 5까지 숫자 중 하나가 쓰여져 있다. 또, 모든 숫자는 다섯 조각 중 하나에만 쓰여 있다.동혁이는 나무 조각을 다음과 같은 과정을 거쳐서 1, 2, 3, 4, 5 순서로 만들려고 한다.- 첫 번째 조각의 수가 두 번째 수보다 크다면, 둘의 위치를 서로 바꾼다.- 두 번째 조각의 수가 세 번째 수보다 크다면, 둘의 위치를 서로 바꾼다.- 세 번째 조각의 수가 네 번째 수보다 크다면, 둘의 위치를 서로 바꾼다.- 네 번째 조각의 수가 다섯 번째 수보다 크다면, 둘의 위치를 서로 바꾼다.- 만약 순서가 1, 2, 3, 4, 5 순서가 아니라면 1 단계로 다시 간다.처음 조각의 순서가 주어졌을 때, 위치를 바꿀 때 마다 조각의 순서를 출력하는 프로그.. 2024. 8. 10.
[코테 챌린지] 4일차. 생일 어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오.- 첫째 줄에 반에 있는 학생의 수 n이 주어진다. (1 ≤ n ≤ 100)- 다음 n개 줄에는 각 학생의 이름과 생일이 "이름 dd mm yyyy"와 같은 형식으로 주어진다. - 이름은 그 학생의 이름이며, 최대 15글자로 이루어져 있다. dd mm yyyy는 생일 일, 월, 연도이다. (1990 ≤ yyyy ≤ 2010, 1 ≤ mm ≤ 12, 1 ≤ dd ≤ 31) - 주어지는 생일은 올바른 날짜이며, 연, 월 일은 0으로 시작하지 않는다.- 이름이 같거나, 생일이 같은 사람은 없다.📌 문제 탐색하기 우리가 문제를 이해해가는 과정을 작성하시면 됩니다.- 문제에서 구해야 하는 최종 .. 2024. 8. 8.
[코테 챌린지] 3일차. 단어 정렬 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.길이가 짧은 것부터길이가 같으면 사전 순으로단, 중복된 단어는 하나만 남기고 제거해야 한다.📌 문제 탐색하기 우리가 문제를 이해해가는 과정을 작성하시면 됩니다.- 문제에서 구해야 하는 최종 정답은 무엇인지 탐색한 과정- 그 정답을 구하기 위해 어떻게 코드를 구현해야 할지 고민한 과정- 문제에 들어오는 범위를 파악하며 어떤 알고리즘을 쓸 수 있을지 고민해 가는 과정 등을 작성해주시면 됩니다.알고리즘 선택순서대로 정렬해주는 sort() 함수 사용📌코드 설계하기 위의 문제 탐색하기에서 고민한 과정을 토대로 문제 풀이에 대한 실마리를 잡으셨을 것 같습니다.이제 문제 풀이를 본격적으로 하기 전, 이 문제를 .. 2024. 8. 7.
[코테 챌린지] 2일차. 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오.첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000)둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름이 공백으로 구분되어 주어진다.나이는 1보다 크거나 같으며, 200보다 작거나 같은 정수이고, 이름은 알파벳 대소문자로 이루어져 있고, 길이가 100보다 작거나 같은 문자열이다. 입력은 가입한 순서로 주어진다.📌 문제 탐색하기 우리가 문제를 이해해가는 과정을 작성하시면 됩니다.- 문제에서 구해야 하는 최종 정답은 무엇인지 탐색한 과정- 그 정답을 구하기 위해 어떻게 코드를 구현해야 할.. 2024. 8. 6.
[코테 챌린지] 1일차. 일곱난쟁이 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다.아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다.아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오.📌 문제 탐색하기 우리가 문제를 이해해가는 과정을 작성하시면 됩니다. - 문제에서 구해야 하는 최종 정답은 무엇인지 탐색한 과정 - 그 정답을 구하기 위해 어떻게 코드를 구현해야 할지 고민한 과정 - 문제에 들어오는 범위를 파악하며 어떤 알고리즘을 쓸 수 있을지 고.. 2024. 8. 5.
[Optical Flow] 옵티컬 플로우3 - Optical Flow 개념 이해 이전에는 영상분석에서의 용어와 Motion field에 대해 정리해보았다. 2023.06.30 - [study/Algorithm] - [Optical Flow] 옵티컬 플로우 2023.07.02 - [분류 전체보기] - [Optical Flow] 옵티컬 플로우2 - Motion field 개념 이해 이번에는 이전에 이어서 Optical Flow에 대한 개념을 정리하려고 한다. 참조 : https://gaussian37.github.io/vision-concept-optical_flow/# 참조 : https://searching-fundamental.tistory.com/17?category=1040000 2. Optical Flow 란? Optical Flow는 정확하게는 물체의 움직임을 포착하는 방법.. 2023. 7. 3.
[Optical Flow] 옵티컬 플로우2 - Motion field 개념 이해 이전에 영상 분석에서 많이 사용되는 용어를 정리해보았다. 2023.06.30 - [study/Algorithm] - [Optical Flow] 옵티컬 플로우 [Optical Flow] 옵티컬 플로우 참조 : https://gaussian37.github.io/vision-concept-optical_flow/# 참조 : https://searching-fundamental.tistory.com/15 Optical Flow는 물체의 움직임을 예측하는데 많이 사용된다. 사람은 관성에 의거해서 물체의 움직임을 leeyujin.tistory.com 이번에는 이전 게시글에 마지막에 언급된 Motion field에 대해서 개념 정리를 해보려고 한다. 참조 : https://gaussian37.github.io/v.. 2023. 7. 2.
[Optical Flow] 옵티컬 플로우 참조 : https://gaussian37.github.io/vision-concept-optical_flow/# 참조 : https://searching-fundamental.tistory.com/15 Optical Flow는 물체의 움직임을 예측하는데 많이 사용된다. 사람은 관성에 의거해서 물체의 움직임을 예측한다. 즉, 모든 물리 현상은 관성을 따른다. 연속 영상에 관한 지식 1. 용어 Frame (프레임) : 연속된 영상이 입력될 때 사용되는 용어로, 동영상을 구성하는 각각의 영상을 뜻하며 시간 축 t를 가지게 된다. - 비디오나 영화등 영상을 전달할때 화면에 뿌려주는 한장의 그림을 의미한다. - 이런 그림들이 초당의 속도로 빠르게 바뀌면서 움직이며 하나의 동영상을 만들어낸다. (ex, 필름) .. 2023. 6. 30.
반응형