목록분류 전체보기 (135)
100세까지 코딩

문제 나의 생각 투 포인터를 쓴다. 시작값인 i는 오른쪽으로 전진. 즉 i+=1 끝값인 j는 왼쪽으로 전진. 즉 j-=1 시작값이 끝값과 같거나 커지면 종료. 즉 끝값이 시작값보다 큰 경우까지만 반복. while j > i 나의 풀이 N, M = map(int, input().split()) number_list = [i for i in range(1, N + 1)] for _ in range(M): i, j = map(int, input().split()) while j > i: number_list[i - 1], number_list[j - 1] = number_list[j - 1], number_list[i - 1] i += 1 j -= 1 print(*number_list) 새롭게 배운 풀이 N,..

문제 나의 생각 서로 다른 값을 저장할 수 있게 중복을 삭제해 주는 set() 자료형을 사용한다. set의 add() 내장함수를 사용하여 set에 하나씩 요소를 추가해준다. len() 내장함수를 사용하여 set의 길이를 출력하면 서로 다른 나머지 개수 출력 가능. 나의 풀이 number_set = set() for i in range(10): number_set.add(int(input()) % 42) print(len(number_set)) 숏코딩 print(len(set([int(input()) % 42 for _ in range(10)]))) 참고 1. set 함수 수학에서의 집합과 비슷하다. 중복제거, 교집합, 합집합, 차집합과 같은 연산 가능하다. 순서가 없으며, 원소의 위치나 삽입 순서를 알지..

문제 나의 생각 list를 번호에 맞게 초기화한다. swap을 시킨다. 나의 풀이 N,M = map(int,input().split()) bucket_list = [i for i in range(1,N+1)] for _ in range(M): i,j = map(int,input().split()) temp = bucket_list[i-1] bucket_list[i-1] = bucket_list[j-1] bucket_list[j-1] = temp print(*bucket_list) 참고 1. 리스트 초기화 방법 - 리스트 컴프리헨션 (i를 활용하여 여러 방법 가능, if문도 사용 가능) bucket_list = [i for i in range(m)] - 언팩킹 (0~m-1까지 순서대로 저장) bucket_..

문제 나의 생각 반복을 통해 list에 입력된 값들을 받는다. 한 줄에 하나의 자연수가 주어질 때는 append()로 하나하나 추가. 최댓값은 max() 함수를 쓰고, 몇 번째 수인지를 찾는 것은 index()를 사용한다. index는 0부터 시작하므로 + 1을 해준다. 나의 풀이 temp_list = [] for i in range(9): temp_list.append(int(input())) max_value = max(temp_list) print(max_value) print(temp_list.index(max_value)+1)

문제 나의 생각 list를 순회해가며 X보다 작을때마다 출력을 해준다. 연이어 출력을 해야하기 때문에 end = " "를 해준다. 나의 풀이 N,X = map(int,input().split()) number_list = list(map(int,input().split())) for i in range(N): if X > number_list[i]: print(number_list[i],end=" ") 나의 풀이2 (list에 하나씩 추가) N, X = map(int, input().split()) number_list = list(map(int, input().split())) temp_list = [] for i in range(N): if X > number_list[i]: temp_list.app..

문제 나의 생각 1차원 배열에 대한 이해를 위한 문제이다. list()로 배열을 만든다. 반복문을 통해 list의 요소들을 하나하나 순회해가며 v와 같은 것이 있으면 sum+1한다. 나의 풀이 cnt = int(input()) arr = list(map(int, input().split())) v = int(input()) sum = 0 for i in range(len(arr)): if arr[i] == v: sum += 1 print(sum) 파이썬 버전의 쉬운 풀이 N = int(input()) number_list = list(map(int,input().split())) v = int(input()) print(number_list.count(v)) - sys.stdin.readline()을 사..