코딩테스트 8

파이썬 코딩테스트 스터디 7주차 #2 - 몸풀기 문제 : 간단한 유니온 - 파인드 알고리즘 구현하기

Operations에 있는 연산 모두 수행 후 집합 개수 반환하는Solution 함수 구현하기 상호배타적 집합 표현시 다음 두 연산 필요1. uinon(x,y) : x와 y가 속한 두 집합 합치기2. find(x): x가 속한 집합의 대표 원소 찾기 operations라는 배열은 수행할 연산 의미['u',1,2]는 노드 1과 노드 2에 대해 union 연산 수행['f',3] 노드 3의 루트 노드 찾기, find연산 수행  제약 조건0  ≤  k  ≤  1,000 : 노드의 개수1  ≤   len(operations)  ≤  1000,000operations[i][0]은 문자열 'u' 또는 'f' 중 하나'u'는 union연산, uinon 연산 뒤로는 두 개의 정수 x,y가 나옴'f 는 find 연산, f..

파이썬 코딩테스트 스터디 7주차 #1 - 집합

1. 집합과 상호배타적 집합의 개념집합의 개념 집합은 순서와 중복이 없는 원소들을 갖는 자료 구조.ex)A그룹 = {1,6,6,6,4,3} 이면 집합은 {1,6,4,3} or {6,1,3,4} or {3,6,1,4} ...등등중복 제거, 순서 상관 X 집합의 종류상호배타적 집합 : 교집합이 없는 집합 관계 2. 집합의 연산배열을 활용한 트리로 집합 표현하기집합은 배열을 활용한 트리로 구현.  대표원소란?집합의 원소 중 집합을 대표하는 역할. 트리로 표현할 때는 루트 노드 배열로 집합을 표현하는 것이란?하나의 배열로 상호 배타적 관계를 가지는 집합을 모두 표현한다즉 2개의 집합(교집합이 없는)을 1개 배열로 다 나타내는 방법. 배열의 인덱스는 자신을, 값은 부모 노드를 의미   이때 배열의 크기는 반드시 ..

파이썬 코딩테스트 스터디 4주차 #2 - 요세푸스 문제

N명의 사람이 원 형태로 서있다.각 사람은 1부터 N까지 번호표를 갖고 있다.그리고 임의의 숫자 K가 주어졌을 때 다음과 같이 사람을 제거 1번 번호표를 가진 사람을 기준으로 K번째 사람 제거없앤 사람 다음 사람 기준으로 다시 K번째 사람 제거 N과 K가 주어질 때 마지막에 살아있ㄴ는 사람의 번호를 반환하는 solution() 구현- 제약 조건N과 K는 1이상 1000이하의 자연수 입출력 예 NKreturn523   그림 설명이 아주 자세히 되어있다.   ■ 리스트로 설명54321이렇게 데이터가 있을 경우,  step 1 . 제일우측부터 k-1번째 데이터까지. 여기선 k가 2이므로 k-1 = 1              즉 1을 제일 pop하고, 다시 제일 좌측에 push15432  step 2. 그리고 ..

파이썬 코딩테스트 스터디 2주차 #8 - 문제 07 방문길이

문제 07 방문 길이 조건1. 이미 지나갔던 길은 Count : X 조건2. 가로10 세로10 좌표평면을 벗어가는 경우 Ignore한다.  즉, 8번째 동작과 9번째 동작은 Count하지 않는다.  아래 그림 역시 7,8번째는 밖으로 벗어나는 경우므로 그냥 무시하고9번째 동작 수행 이 책의 핵심 풀이 과정1. Set 활용2. 기능 분리     - is_valid_move    - update_location 3. 양 방향으로 set에 add해주고 나중에 1/2하기  def solution(dirs): x, y = 5,5 #첫 시작점을 (5,5)라고 가정하고 문제 풀이 ans = set() #겹치는 좌표는 1개로 처리하기위해 Set을 활용 for dir in di..

카테고리 없음 2024.07.06

파이썬 코딩테스트 스터디 2주차 #5 - 문제 04 모의고사 - 수포자

https://programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 코딩테스트 연습 > 완전탐색 > 모의고사수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려고한다.- 1번 수포자가 찍는 방식 : 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...- 2번 수포자가 찍는 방식 : 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5 ...- 3번 수포자가 찍는 방식 : 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1,..

파이썬 코딩테스트 스터디 2주차 #4 - 문제 03 두 개 뽑아서 더하기

지난 시간 문제 1~2번 파이썬 코딩테스트 스터디 2주차 #3 - 몸풀기 문제문제 01 배열 정렬하기정수 배열을 정렬해서 반환하는 solution()함수 완성하기.제약 조건 · 정수 배열의 길이는 2 이상 10^5(10의 5제곱) 이하· 정수 배열의 각 데이터 값은 -100,000 이상 100,000이하입hoony926.tistory.com   문제 03 두 개 뽑아서 더하기정수 배열 number가 주어진다.서로 다른 2개 수를 더해 만들 수 있는 모든 수를 배열에 오름차순으로 담아 반환하는 solution()함수 완성하시오. 제약 조건 · numbers 길이는 2 이상 100이하· numbers의 모든 수는 0 이상 100 이하 입력출력[2,1,3,4,1][2,3,4,5,6,7][5,0,2,7][2,5..

파이썬 코딩테스트 스터디 2주차 #2 - 자주 활용하는 리스트 기법

리스트에 데이터 추가데이터 삽입 방법 1. append() 가장 끝 인덱스에 데이터가 추가됨.   데이터 삽입 방법 2.+ 연산자   데이터 삽입 방법 3.insert() insert() 메소드를 사용하면, 특정 위치에 데이터 삽입 가능   리스트에 데이터 삭제데이터 삭제 방법 1. pop() 특징1. 인덱스를 인수로 받는다특징2. 삭제한 데이터의 값을 반환한다.  데이터 삭제 방법 2. 인수로 인덱스가 아닌, 데이터 자체를 받아 해당 데이터 삭제단, 값이 여러개인 경우 인덱스가 제일 낮은 즉 제일 처음 나오는 데이터만 삭제   리스트에 컴프리헨션으로 데이터 특정 연산 적용기존 리스트를 기반으로 새로운 리스트를 만들거나반복문, 조건문을 이용해 복잡한 리스트를 생성하는 등 다양한 상황에서 사용 가능한 문법..

파이썬 코딩테스트 스터디 2주차 #1 - 배열 개념, 배열의 효율성

배열  배열 선언방법 1. 배열 값들을 나열- arr1 = [1,2,3,4,5]- arr2 = [0]*6            # 6개의 0이 순차적으로 저장  방법 2. 리스트 생성자 사용- arr = list(range(6))  # [0,1,2,3,4,5] 방법 3. 리스트 컴프리헨션 활용- arr = [0 for _ in range(6)] Java에서의 배열은 선언후 크기 변경이 안되는데Python에서 배열은 동적으로 크기 조절이 가능하다는 점이 완전 대박! * 배열 ! 뮤터블 객체!  배열과 차원1차원 배열   2차원 배열 책에 나온 설명과 이미지를 그대로 가져오는게 훨씬 훨씬 나을 것 같아이번 포스팅에서는 특히 더 많이 참조하고 있습니다.       배열의 효율성배열 연산의 시간 복잡도다시 한번 ..