파이썬4 문제풀이 수업 실습 문제: 숫자로 이뤄진 배열 중 유일하게 중복이 안된 숫자를 반환하라풀이1: set을 이용해서 중복된 내용 제거함from typing import Listdef SingleNumberList(nums: List[int]) -> int: num_set = set() for num in nums: if num in num_set: num_set.add(num) else: num_set.remove(num) return num_set print(singleNumberList([5,1,3,1,3,2,2])) 풀이2: 비트연산을 이용한 같은 수를 만나면 비트는 0으로 다르면 1로 계산되어 배열끝까지 남은 수는 같지 않은 수이다. +) 비트연산 & 연산자 : 비트단위로 AND연산(두 개의 .. 2024. 6. 11. [백준] #11653.소인수분해 #11653. 소인수분해문제 설명:N을 소인수분해하는 문제 오답노트:문제 풀이과정에서 범위가 N까지의 소수 리스트를 만들어 첫 시도는 시간초과되었으며 두 번째도 간단한 코드를 구현하였으나 채첨시간이 매우 오래걸렸다. - 두 번째 시도:성공하였으나 시간이 오래 걸림(1156ms)N = int(input())if N > 1: for i in range(2, N+1): while N % i == 0: N = N // i print(i)- 최종코드(다른 코드 참조, 40ms)N = int(input())for i in range(2, int(N**0.5)+1): while N % i == 0: print(i) N //= iif N > 1: prin.. 2024. 5. 29. [백준] #2444.별 찍기 - 7 for문 속 n은 제어인자와는 무관한 반복인자로 설정하였다.모형의 상부는 n번 실행되고 하부는 n-1번 실행하도록 설정한다.n에서 제어인자 i를 증감함에 따라서 공백과 별의 출력횟수를 결정한다.하지만 comma로 이은 인자 두개를 출력하는 경우 자동적으로 공백이 생긴다는 것을 인지하지 못하여 많은 시간 내가 의도한 공백보다 하나 더 많이 출력되었다.이 문제는 print문의 sep= 기능을 이용하여 인자 사이의 공백을 없애고 출력한 결과 잘 작동하는 것을 알 수 있다. N = int(input())i = 0for n in range(N): i += 1 print(" " * (N - i), "*" * (2 * i - 1),sep='')for n in range(N - 1): i -= 1 .. 2024. 5. 8. 타겟넘버 Description n개의 음이 아닌 정수가 있다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 한다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수가 있다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 n개의 숫자가 담긴 배열 numbers, 타겟 넘버 target이 입력이 될 때, 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 출력한다. Input 첫째 줄은 주어지는 숫자의 개수 n (2 ≤ n ≤ 20)이다. 두번째 줄에는 배열 numbers의 원소(1이상 50이하인 자연수)들이 주어진다. 세번째 줄에는 타겟 넘버 traget(1≤ t.. 2024. 4. 22. 이전 1 다음