[프로그래머스] 최빈값 구하기
·
알고리즘/프로그래머스
첫 풀이이차원 배열로 풀려고 했다, 원소들의 값을 하나씩 비교해서 이차원 배열안에 넣어 출력을 해주려고 했다.import Foundationfunc solution(_ array: [Int]) -> Int { var myArray = [[Int]]() var Array = [Int]() var count = 0 var result = 0 var i = 0 var j = 0 var k = 0 while i 두번째 풀이문제를 이용해서 원소가 1000까지이니 새로운 1000개 배열을 만들어서 숫자에 따라 배열 자리수에 +1 을 해주었다.그렇게 되면 새로운 배열에 3이 4개가 있다면 새로운 배열 3번째 위치에 4가 있는 방식이다.그것을 비교하여 제일 높은 숫자가 있는 ..
[프로그래머스] 배열 중앙값 구하기
·
알고리즘/프로그래머스
안녕하세요 bulmang입니다.하루에 한시간이상 코테공부는 꾸준히 하려고 합니다!문제설명최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다제한사항0  array의 길이 0 ≤ array의 원소 풀이오름차순으로 정렬 - sort함수 사용 - array.sorted(), 내림차순의 경우 sorted(by:) 사용중앙값을 구해야 함 - 배열 길이를 2로 나눠 몫을 구한다.(array.count/2)배열에 추가 - append 사용깨달은 것sorted 오름차순, sorted(by:) 내림차순 사용append는 하나의 요소만 추가, append(..
[프로그래머스] 분수의 덧셈 구하기
·
알고리즘/프로그래머스
Lv 0 단계부터 시작하려고 합니다.하루에 한시간 이상씩 코딩테스트 문제를 연습하려고 합니다.정말 대충 넘기지 않고 제대로 하니 되게 오래걸리네요,, 벌써 새벽 4시반이네요 최소공배수 구하기var lcm = denom1 * denom2 / gcd(denom[0], denom[1])분자 합 구하기 sumNumer[0] = numer1 * (lcm/denom1) + numer2 * (lcm/denom2) sumDenom[0] = lcm기약분수 구하기 var gcdOfNumerAndDenom = gcd(sumNumer[0], sumDenom[0]) sumNumer[0] /= gcdOfNumerAndDenom sumDenom[0] /= gcdOfNumerAndDenom최대공약수 구하기..
백준 1110번 더하기 사이클
·
알고리즘/백준
문제0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자.26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다.위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다.N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 ..
백준 1978번 소수찾기
·
알고리즘/백준
https://www.acmicpc.net/problem/1978 1978번: 소수 찾기첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.www.acmicpc.net문제주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.출력주어진 수들 중 소수의 개수를 출력한다.예제 입력 1 복사41 3 5 7예제 출력 1 복사3문제풀이숫자를 입력받을 때 map함수를 사용하여 int 타입과 공백을 구분하기 위해 split함수를 사용split을 적용할 경우 예 1 12 3 출력 1 , 12 , 3..
[파이썬 알고리즘 인터뷰] 배열 - 세수의 합
·
알고리즘
문제설명 - 배열을 입력받아 함으로 0을 만들 수 있는 3개의 엘리먼트를 출력하라. 예시 #입력 nums = [-1, 0, 1, 2, -1, -4] #출력 [ [-1, 0, 1], 【-1, -1, 2] ] 풀이 앞 뒤로 같은 값이 있을 경우를 대비해 sort() 함수를 사용 중복된 값이 있을수 도 있기 때문에 continue로 건너 뛴다. 세 개의 포인터를 이용하여 각각의 포인터가 이동하면서 i + j + k = 0을 찾아내서 반환을 해준다. def three_sum(nums): results = [] nums.sort() print(nums) # 앞 뒤로 같은 값이 있을 경우를 대비해 sort() 함수를 사용 for i in range(len(nums) - 2): if i > 0 and nums[i] ..