[이코테] [7] 투포인터
·
Programming/CodingTest
투 포인터 알고리즘은 리스트에 순차적으로 접근해야 할 때두 개의 점의 위치를 기록하면서 처리하는 알고리즘. [ 문제 ]특정한 합을 가지는 부분 연속 수열 찾기 - N개의 자연수로 구성된 수열 : [1, 2, 3, 2, 5]- 합이 M인 부분 연속 수열의 개수를 구하세요.- 수행 시간 제한은 O(N)입니다. [ 풀이 ]1) left와 right 두 개의 포인터 사용:left: 부분 수열의 시작 인덱스.right: 부분 수열의 끝 인덱스 (확장하면서 합을 계산).2) 슬라이딩 윈도우 방식으로 합을 조절:합(current_sum)이 M보다 작으면 right 증가 (부분 수열 확장).합이 M보다 크면 left 증가 (부분 수열 축소).합이 M이면 카운트 증가하고 left 이동.3) 모든 요소를 한 번씩만 탐색하..
[Data]Web log에서 유저별 페이지 방문 통계
·
Programming/CodingTest
문제웹 로그 데이터를 분석하여 각 페이지마다 유저들이 방문했는지 통계를 도출하고,유저의 나이와 성별을 기반으로 상세 통계도 구하시오. 주어진 웹 로그 데이터와 두 개의 테이블을 이용하여방문 페이지별로 유저 방문 수를 계산하고,유저의 나이대를 그룹화하여 각 페이지에서의 성별 통계를 포함한 결과를 출력해야 합니다.  요구사항- 각 페이지별로 유저 방문 수를 계산하시오.- 유저 정보를 기반으로 나이와 성별에 따라 그룹화하여, 유저 방문 수 통계를 구하시오.- 10대에서 20살인 경우는 10~20으로, 30대는 30~40으로, 50세 이상은 50~으로 표시합니다.- 유저 정보가 없는 경우, 유저 나이와 성별은 "-"로 표시합니다.- 로그는 hdfs에 저장되어 있고, 테이블은 mysql이며, Hive Table에..
[Data] Excel 파일에서 IP 주소별 금액 집계
·
Programming/CodingTest
문제Excel 파일(data.xlsx)에는 여러 사용자의 IP 주소와 금액이 포함된 데이터가 있습니다.각 사용자의 IP 주소별로 금액의 총합을 구한 후, 금액이 가장 큰 사용자부터 순서대로 출력하는 함수를 작성하시오. 파일 구조 (data.xlsx)IP Address    User     Amount192.168.1.1    Alice     100192.168.1.2    Bob      150192.168.1.1    Alice     200192.168.1.3    Charlie 300192.168.1.2    Bob       50 요구사항- Excel 파일에서 데이터를 읽어들입니다.- IP 주소별로 각 사용자의 금액의 총합을 계산합니다.- 총합을 내림차순으로 정렬한 후 출력합니다.- Python..
[HackerRank] SuperReducedString (같은문자열제거) Strings 문제
·
Programming/CodingTest
문제문자열에서 인접한 두 개의 동일한 문자를 모두 제거합니다. 이 과정을 반복하여 문자열을 가능한 한 축소합니다. 만약 모든 문자가 제거되어 빈 문자열이 된다면 "Empty String"을 출력합니다. 예시입력: "aaabccddd"출력: "abd" 설명:처음 문자열: aaabccdddaa 제거: abccdddcc 제거: abddddd 제거: ab최종적으로 남은 문자열: ab  풀이string문제지만 stack을 통해 해결 할 수 있다.문자열을 순회하면서 문자를 하나씩 처리하고, 스택의 최상단 문자가 현재 문자와 같으면 스택에서 제거하는 방식이다.def super_reduced_string(s): stack = [] # 문자열의 각 문자에 대해 반복 for char in s: ..
[HackerRank] Marc's Cakewalk (마크케이크웍) Greedy 문제
·
Programming/CodingTest
문제마크는 결혼식에서 케이크를 먹고 싶어 합니다.하지만 마크의 다이어트를 돕기 위해서, 그의 친구들은 그가 먹는 각 케이크의 칼로리에 대해 벌칙을 부여하기로 했습니다.마크가 먹는 각 케이크에 대해, 그 케이크의 칼로리에 2의 j승을 곱하여 벌칙 점수를 계산합니다.여기서 j는 마크가 먹은 케이크의 순서이며, 가장 먼저 먹은 케이크의 j는 0이고, 두 번째로 먹은 케이크의 j는 1입니다. 마크가 먹을 케이크의 칼로리가 주어졌을 때, 그가 얻을 수 있는 최소한의 벌칙 점수를 계산하세요. 입력:35 10 7 출력:44 예시:  문제 해결 전략 칼로리 내림차순 정렬:벌칙 점수를 최소화하기 위해서는 칼로리가 높은 케이크를 먼저 먹어야 합니다.벌칙 점수 계산:내림차순으로 정렬된 칼로리 배열을 사용하여, 각 케이크에 ..
[HackerRank] Gemstones (잼스톤) Strings 문제
·
Programming/CodingTest
문제여러 암석들이 주어졌을 때, 각 암석은 다양한 원소로 구성됩니다.여기서 '보석(gemstone)'은 모든 암석에서 공통적으로 발견되는 원소를 의미합니다.주어진 암석들에서 보석이 되는 원소의 개수를 구하는 문제입니다. 입력:첫 번째 줄: 암석의 개수 N (1 각 암석은 알파벳 소문자로 이루어진 문자열로 표현되며, 이는 암석에 포함된 원소를 나타냅니다.STDIN Function----- --------3 arr[] size n = 3abcdde arr = ['abcdde', 'baccd', 'eeabg']baccdeeabgSample Output  출력:모든 암석에 공통으로 포함된 원소의 개수를 출력합니다.2  문제 해결 전략각 암석에서 원소를 집합으로 변..
[HackerRank] Caesar Cipher (시저암호) Strings 문제
·
Programming/CodingTest
문제시저 암호(Caesar Cipher)는 암호화 기술 중 하나로,문자열의 각 문자를 알파벳 내에서 일정한 거리만큼 이동시켜 암호화하는 방식입니다.예를 들어, 'A'에서 두 칸 오른쪽으로 이동하면 'C'가 되고, 'Z'는 'B'가 됩니다.이 문제에서는 주어진 문자열을 시저 암호화하여 암호화된 문자열을 출력해야 합니다. 주어진 문자열에 대해:각 문자를 K만큼 오른쪽으로 이동시켜 암호화합니다.K가 26을 초과하는 경우, 알파벳 수(26)로 나누어 K를 단축시킬 수 있습니다.소문자, 대문자, 숫자, 기호는 각각 별도로 처리됩니다.소문자는 소문자 범위 내에서, 대문자는 대문자 범위 내에서 이동합니다.알파벳 이외의 문자는 그대로 유지됩니다. 입력11middle-Outz2 출력okffng-Qwvb 문제 해결 전략각..
[HackerRank] Forming a Magic Square (마방진) Implementation 문제
·
Programming/CodingTest
문제마법의 정사각형(Magic Square)은 3x3 크기의 정사각형 그리드로 구성되며,숫자 1부터 9까지의 모든 숫자가 한 번씩 나타나고, 각 행(row), 열(column),그리고 대각선(diagonal)의 숫자 합이 모두 동일한 값을 가집니다.주어진 3x3 숫자 그리드를 최소한의 비용으로 마법의 정사각형으로 변환해야 합니다. 변환 비용은 각 숫자를 다른 숫자로 바꾸는 데 드는 비용이며, 이 비용은 두 숫자의 차이만큼 증가합니다.예를 들어:4 8 24 5 76 1 6이 그리드를 마법의 정사각형으로 바꾸는 최소 비용을 계산해야 합니다. 입력:3x3 크기의 정수 그리드가 주어집니다. 출력:마법의 정사각형으로 변환하기 위한 최소 비용을 출력합니다. 문제 해결 전략이 문제를 해결하기 위해 먼저 가능한 모든 ..
wave35
'Programming/CodingTest' 카테고리의 글 목록