답: 나머지가 1인 수 구하기
def solution(n):
for x in range(1, n):
if n % x == 1:
return x
팀원들의 풀이
1)
def solution(n):
result = 2
while n%result != 1:
if result > n/2:
result = n-1
else:
result += 1
return result
>> 가장 작은 자연수를 확인하는 것이므로 n을 나누어줄 숫자의 앞쪽 반을 먼저 계산하도록 함
2)
def solution(n):
i = 2
while (n-1) % i: i += 1
return i
>> 나머지가 1이므로 n-1이 딱 맞아떨어지는 1를 계산하기
문제 분석 및 해석
자연수 n, n을 나누었을때 1이되도록하는 가장 작은 자연수 x를 return 하는 함수 만들기
입력: n 10 12
출력: result 3 11
1)생각한 풀이
n보다 작은 수의 배열로 나누어서
나머지가 1이 나오는 가장 작은 수 return
x가 n보다 작은 자연수들이 되어야함!
- 과정 -
for range를 쓰자! 1부터 차례대로 ~ n보다 1 작은 수까지.
def solution(n):
for x in range(1, n):
% 연산자로 계산하여 나머지 1을 남겨 return 끝!
답: 없는 숫자 더하기
zerotonine = [0,1,2,3,4,5,6,7,8,9]
def solution(numbers):
answer = list(set(zerotonine) - set(numbers))
return sum(answer)
팀원들의 풀이
1)
def solution(numbers):
answer = []
for i in range(0, 10):
if i not in numbers:
answer.append(i)
return sum(answer)
for 문으로 0~9까지를 불러오고, if 문으로 검사하여 answerlist를 더하기
1)-1
def solution(numbers):
sum = 0
for i in range(10):
if i not in numbers:
sum+=i #여기서 바로 더해주기
return sum
2)
차집합 함수 difference 사용하기
앞에는 온전한 숫자 리스트를, difference의 인수로 비교할 리스트를 넣는다.
def solution(numbers):
nums = set([0,1,2,3,4,5,6,7,8,9])
a = nums.difference(numbers)
answer = sum(a)
return answer
문제 분석 및 해석
0~9 숫자 일부가 들어있는 배열 numbers
numbers 에서 찾을 수 없는 숫자를 찾아 더한 수를 return
입출력 :
numbers result
[1,2,3,4,6,7,8,0] 14
[5,8,4,0,6,7,9] 6
1)생각한 풀이
온전한 list와 비교하면 좋겠는데...
교집합의 반대개념인 차집합!이 번뜩 생각났다.
- 과정 -
set() 으로 집합으로 만들고 - 연산자로 비교하기
- 과정2 - 풀이중 미궁에 빠짐,, 내일 더 풀어봐야지
difference함수를 사용해 풀이하는 것을 발견!
원하셨던 풀이:
nums 리스트랑 numbers랑 중복되는 같은 값을
pop으로 빼서 a 에 담고 남겨진 numbers 리스트를 합치기
** 이때 nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
이렇게 풀이하려면 일치하는 것을 찾아서 빼주는 방법이 필요한데...
pop()은 index를 값으로 받고, 넣지 않으면 맨 뒤에서부터 하나씩 빼주는 함수여서 적절하지 않다고 생각했다.
pop() 대신 사용할 수 있는 함수를 생각해보았다.. remove?
def solution2(numbers):
# a = zerotonine.difference(numbers).pop()
c = []
for n in numbers:
a = zerotonine.remove(n)
c.append(a)
return c
print(solution2(numbers))
미궁에 빠졌다
뭔가 아래 블로그를 참고해서 풀 수 있을 거 같으니 우선 남겨두자/
참고해서 풀이하기 : 짝지어 제거하기
'알고리즘 풀이' 카테고리의 다른 글
[algorithm] 페어 - 백준:25314 코딩은 체육과목 | 프로그래머스: 문자열 내 마음대로 정렬하기 (0) | 2023.05.03 |
---|---|
[algorithm] 페어 - 백준:2563 색종이 (0) | 2023.05.02 |
[algorithm] 페어 - 프로그래머스: 비밀지도 (0) | 2023.04.28 |
[algorithm] 페어 - 백준: 25304 영수증 (0) | 2023.04.27 |
[algorithm] 페어 - 프로그래머스: 영어가 싫어요 (0) | 2023.04.26 |