본문 바로가기
728x90
반응형

study/CodingTest37

큰 수의 법칙 w/파이썬 첫째줄 배열의 크기 N (2 2023. 8. 21. 21:01
그룹 알고리즘 w/파이썬 특정 키값에 해당하는 그룹화된 합계 리스트를 만든다 항목명 수량 RADIO 3 TV 1 RADIO 2 DVD 4 이런 식으로 중구난방으로 흩어진 값인데 항목명 수량 DVD 4 RADIO 5 TV 1 수량을 항목별로 더해서 합계를 내고, 정렬하고 싶다. 어차피 문자도 아스키 코드값 따라가니까 우리가 아는 그 사전 순서대로 정렬이 될거고, 정렬은 똑같이 진행하면 되는데 같은 상품명일 때 수량을 누적합계 내고 다음 항목과 다르거나, 마지막이면 저장. #그룹 알고리즘: 특정 키값에 해당하는 그룹화된 합계 리스트 만들기 #[?] 컬렉션형태의 데이터를 특정 키값으로 그룹화 #테스트용 레코드클래스 class Record(): def __init__(self, name, quantity): self.name = nam.. 2023. 5. 29. 10:49
최빈값 알고리즘 w/파이썬 가장 많이 나타난 값 : 최빈값 최빈값이 무엇인지를 구하는 알고리즘. 스코어 배열을 가지고 판단하기 위해 스코어 범위를 나타내는 배열이 하나 필요하다 범위의 인덱스 자리값에 해당하는 스코어를 하나씩 추가한다 3이 나오면 3번지에 +1 이런 식으로. 그렇게 채워진 범위 인덱스 배열에서 최댓값이 최빈값이 되는 구조. #[?]주어진 데이터에서 가장 많이 나타난 값 import sys #[1]input scores = [1,3,4,3,5] #0~5점까지만 허용한다고 가정 indexes = [0] * 6 #0~5점 점수 인덱스: 갯수 저장 max = -sys.maxsize - 1 #맥스알고리즘 적용 mode = 0 #최빈값이 담길 그릇 n = len(scores) m = len(indexes) #[2]proces.. 2023. 5. 28. 19:28
병합 알고리즘 w/파이썬 first = [1,3,5] , second = [2,4] 두 배열을 [1,2,3,4,5]로 합치고 싶다. 각 배열의 처음 순서부터 비교하여 1 1을 선택 3 > 2 -> 2를 선택 3 3을 선택 5 > 4 -> 4를 선택 - > 그리고 마지막 남은 5를 처리한다. #[?] 2개의 정수배열 합치기 : 오름차순 정렬 가정 #병합알고리즘 : 오름차순 정렬된 정수 배열 2개를 하나로 병합 #[1] input - 정렬되지 않은 배열인 경우 정렬이 필요함 first = [1,3,5] second = [2,4] m = len(first) n = len(second) merge = [0]* (m+n) #m+n자리만큼 병합데이터 들어갈 배열을 만듦 i = 0 j = 0 k = 0 #[2] pr.. 2023. 5. 21. 19:28
이진 검색 알고리즘 w/파이썬 정렬된 데이터를 이진 검색을 활용하여 반띵. 내 신발 가격 10만원 업 다운? 업 -> 15만원 -> 다운-> 12만원 -> 업 -> 14만원! 평소에 이런식으로 물건 가격 맞추기 했던 기억을 되살려서 문제를 풀어보자. 로우 하이 인덱스값을 지정하고, 로우와 하이 인덱스의 중간지점에 평균 미드 인덱스를 지정한다. 그리고 그 미드인덱스 값이 찾는 값보다 큰지 작은지에 따라 로우/하이를 조정하여, 찾는 값이 나올때까지 while반복. #검색알고리즘(search algorithm): 주어진 데이터에서 특정 데이터를 찾음 #정렬되어있는 데이터를 이진검색을 사용하여 반띵나눠서 검색 def main(): #[1]input data = [1,3,5,7,9] #오름차순정렬로 가정 - 안되어있는 경우 정렬 필요 n = .. 2023. 5. 20. 15:51
파이썬 반복문 누적합계 빅데이터 교육 듣다가 오랜만에 알고리즘 비슷한 문제 풀어서 머리에 쥐 남. 한동안 뜸했는데 자주 풀어야지,, 다음과 같은 규칙을 가진 숫자의 합을 for문을 사용해서 구현하세요. 1부터 19까지 누적 합계를 구합니다. (예시) 1 + (1 + 3) + (1 + 3 + 5) + (1 + 3 + 5 + 7) + ... + (1 + 3 + ... + 19) 1+ 1+3+ 1+3+5+ 1+3+5+7+ 1+3+5+7+9+ 1+3+5+7+9+11+ 1+3+5+7+9+11+13+ 1+3+5+7+9+11+13+15+ 1+3+5+7+9+11+13+15+17+ 1+3+5+7+9+11+13+15+17+19+ 합계: 385 1*10 + 3*9 + ... + 19*1 이니까 계산은 금방 할 수 있다고 생각했는데 반복 출력때문에.. 2023. 3. 20. 12:01
자연수 뒤집어 배열로 만들기 (자료형 처리 / linkedlist / while) 문제 출처 - 프로그래머스 문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를 들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 return 12345 [5,4,3,2,1] %10 을 해서 나머지를 구하고, /10을 해서 자릿수를 하나씩 줄여나간다. 그리고 0이 될 때까지 자릿수 줄임을 반복하기 위한 while문을 바로 생각해 낼 수 있었다. 하지만 한 가지 함정이, 이 문제 인풋이 long 타입으로 들어오는데 int로 리턴을 뱉어야 한다. long int 간의 변환을 위해 여러 방법을 사용해봤으나 먹히지 않았다. 대체 왜지..? 이 문제의 의도한 바가 그게 아닌거였나,,, 그래서.. 2022. 12. 13. 21:41
순열 검사 (배열의 정렬과 비교) 출처 ) 프로그래머스 문제 설명 길이가 n인 배열에 1부터 n까지 숫자가 중복 없이 한 번씩 들어 있는지를 확인하려고 합니다. 1부터 n까지 숫자가 중복 없이 한 번씩 들어 있는 경우 true를, 아닌 경우 false를 반환하도록 함수 solution을 완성해주세요. 제한사항 배열의 길이는 10만 이하입니다. 배열의 원소는 0 이상 10만 이하인 정수입니다. 입출력 예 arrresult [4, 1, 3, 2] true [4, 1, 3] false 입출력 예 설명 입출력 예 #1 입력이 [4, 1, 3, 2]가 주어진 경우, 배열의 길이가 4이므로 배열에는 1부터 4까지 숫자가 모두 들어 있어야 합니다. [4, 1, 3, 2]에는 1부터 4까지의 숫자가 모두 들어 있으므로 true를 반환하면 됩니다. 입출.. 2022. 12. 12. 22:00
최댓값의 인덱스 구하기 출처 ) 프로그래머스 문제 설명 주어진 입력중 최대값을 구하고, 최대값이 이 위치하는 index 값의 목록을 반환하세요. 입력: [1, 3, 5, 4, 5, 2, 1] 입력된 목록의 최대값은 5입니다. 5와 동일한 값을 가진 위치는 3번째, 5번째 위치 입니다. 이 위치에 해당하는 index는 [2, 4] 입니다. 출력: [2, 4] 입출력 예 입력: [1, 3, 5, 4, 5, 2, 1] 출력: [2, 4] 👉🏻 위와 같습니다. 입력: [3, 6, 10, 1, 7, 2, 4, 6, 10, 9] 출력: [2, 8] 👉🏻 최대값 10이 위치하는 곳은 3번째, 9번째 입니다. 이 위치의 index값은 2, 8입니다. package programmers; class Solution { public int[] .. 2022. 10. 2. 23:09
728x90
반응형