전체 글

전체 글

    [프로그래머스] Level 3 - 불량 사용자 (Python)

    [프로그래머스] Level 3 - 불량 사용자 (Python)

    https://school.programmers.co.kr/learn/courses/30/lessons/64064 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✅ Solution permutations를 이용해서 banned_id의 길이만큼 가능한 순열을 모두 구한다. 각각 순열을 banned_id와 비교하면서 불량 사용자 배열이 될 수 있는지 체크한다. 만약 가능하다면 answer에 넣어준다. 이때, 불량 사용자의 아이디 목록 내용이 동일한 경우에는 개수를 더해주면 안되므로 answer에 존재하지 않을 때만 넣어준다. ✅ Code from iterto..

    [프로그래머스] Level 3 - 표 편집 (Python)

    [프로그래머스] Level 3 - 표 편집 (Python)

    https://school.programmers.co.kr/learn/courses/30/lessons/81303 ✅ Solution 그냥 리스트로 풀었다가 정확성만 통과하고 효율성은 통과를 못해서 구글링 해봤더니 링크드 리스트로 푸는 문제라는 걸 알았다. 너무 어려워 linked_list는 딕셔너리로 선언하고, key는 인덱스, value는 해당 인덱스와 연결된 앞 인덱스와 뒷 인덱스로 이루어져 있다. 0:[-1, 1], 1:[0, 2], 2:[1, 3]... "U X", "D X"의 경우에는 단순하게 연결된 리스트를 X번 돌면서 확인하면 된다. {0:[-1, 1], 1:[0, 2], 2:[1, 3], 3:[2, 4]} 일 때, k = 3, "U 2" 라면 인덱스가 2칸 앞에 있는 인덱스를 찾아야 하므..

    [프로그래머스] Level 3 - [1차] 셔틀버스 (Python)

    [프로그래머스] Level 3 - [1차] 셔틀버스 (Python)

    https://school.programmers.co.kr/learn/courses/30/lessons/17678 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✅ Solution hh:mm 형식으로 된 timetable을 모두 분으로 나타내 주고, 내림차순 정렬한다. n회 t분 간격으로 셔틀버스가 운영되므로 n번 반복문을 돌면서 셔틀버스 오는 시간에 탈 수 있는 인원을 지운다. timetable의 길이가 1 이상이고, 셔틀버스 도착시간보다 일찍 혹은 같은 시간에 대기했으며 이미 탄 인원이 m명 이하일 때 태운다. 콘은 무사히 사무실에 도착해야 하므로 가..

    [프로그래머스] Level 3 - [1차] 추석 트래픽 (Python)

    [프로그래머스] Level 3 - [1차] 추석 트래픽 (Python)

    https://programmers.co.kr/learn/courses/30/lessons/17676 times[j][0]: cnt += 1 answer = max(answer, cnt) return answer

    [프로그래머스] Level 2 - N개의 최소공배수 (Python)

    [프로그래머스] Level 2 - N개의 최소공배수 (Python)

    https://programmers.co.kr/learn/courses/30/lessons/12953 코딩테스트 연습 - N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배 programmers.co.kr ✅ Solution 여러개의 수의 최소 공배수를 구하기 위해서는 두 수의 최소 공배수를 구한 뒤, 해당 수와 그 다음수와의 공배수 구하는 과정을 반복하면 된다. 예를 들어, [2, 6, 8, 14] 에서 2와 6의 최소공배수는 6이다. 그리고 6과 8의 최소 공배수는 24이다. 마지막으로 24와 14의 최소 공배수는 1..

    [프로그래머스] Level 2 - N-Queen (Python)

    [프로그래머스] Level 2 - N-Queen (Python)

    https://programmers.co.kr/learn/courses/30/lessons/12952 코딩테스트 연습 - N-Queen 가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다. 예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은 programmers.co.kr ✅ Solution 첫 번째 열부터 차례대로 퀸을 추가한다. 퀸을 추가하고, 이전에 놓였던 퀸들과 행이 같지 않아야 하며 대각선에 위치하지 않아야 하는 조건을 체크한다. 열마다 하나씩 퀸을 추가할 것이므로 열이 같은 경우는 존재하지 않으므로 열에 대한 고려는 해주지 않아도 된다. (항상 하나의 열에 퀸 하나만 존재) new_queen_col == ..

    [Swift] 반복문

    [Swift] 반복문

    반복문이란? 반복적으로 코드가 실행되게 만드는 구문 for-in 루프 상수는 반복문 내에서만 사용 가능 순회대상은 set, array, dictionary, character, 범위 데이터, 문자열 등의 상수, 변수 사용 가능 for 루프상수 in 순회대상 { // 실행 구문 } for i in 1...4 { print(i) } let arr = [1,2,3,4] for i in arr { print(i) } // 1 // 2 // 3 // 4 While for 문의 경우, 미리 순회 횟수가 정해져 있지만, While 문의 경우 조건식이 false 가 될 때까지 무한 수행 즉, 조건을 만족하는 동안 계속 실행이 됨 while 조건식 { // 실행 구문 } var number = 5 while number..

    [프로그래머스] Level 2 - 숫자 블록 (Python)

    [프로그래머스] Level 2 - 숫자 블록 (Python)

    https://programmers.co.kr/learn/courses/30/lessons/12923 코딩테스트 연습 - 숫자 블록 1 10 [0, 1, 1, 2, 1, 3, 1, 4, 3, 5] programmers.co.kr ✅ Solution 자기 자신을 제외한 최대 약수가 답이다. 주의할 점은 길이는 1,000,000,000인 도로지만 들어가는 수의 최댓값은 10,000,000 이므로 최대 약수를 구할 때, 10,000,000을 넘지 않는다는 조건을 추가한다. ✅ Code def divisior(num): if num == 1: return 0 else: for i in range(2, int(num ** 0.5) + 1): if num % i == 0: if (num // i)