본문 바로가기
728x90

전체 글348

이것이 취업을 위한 코딩 테스트다 CHAPTER 14 정렬 문제 Q 23. 국영수 ''' Chapter 14. 국영수 접근법 1 국어 내림차순, 영어 오름차순, 수학 내림차순, 이름 오름차순으로 정렬 ''' import sys input = sys.stdin.readline # 도현이네 반의 학생 수 N = int(input()) # 학생 성적 student = [input().split() for _ in range(N)] # 국어 내림차순, 영어 오름차순, 수학 내림차순, 이름 오름차순 student.sort(key=lambda x:(-int(x[1]),int(x[2]),-int(x[3]),x[0])) for s in student: print(s[0]) Q 24. 안테나 ''' Chapter 14. 안테나 접근법 1 중간에 있는 집에 설치할 때 거리의 총 합이 .. 2023. 4. 9.
이것이 취업을 위한 코딩 테스트다 CHAPTER 13 DFS/BFS 문제 Q 15. 특정 거리의 도시 찾기 ''' Chapter 13. 특정 거리의 도시 찾기 접근법 1 최단 거리 구하는 문제 -> bfs 현 위치에서 갈 수 있는 도시를 다 방문 최단 거리보다 더 적은 거리로 방문했으면 방문 이어서 하기 최단 거리로 방문했으면 그 이상 방문은 최단거리보다 크기 때문에 그 도시에서 더 나아가지 않기 ''' from collections import deque import sys input = sys.stdin.readline # 도시의 개수, 도로의 개수, 거리정보(최단거리),출발도시번호 N,M,K,X = map(int,input().split()) # 도로 load = [[] for _ in range(N)] for _ in range(M): A,B = map(int,inpu.. 2023. 4. 9.
[프로그래머스] 블록 이동하기 - Python https://school.programmers.co.kr/learn/courses/30/lessons/60063 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ''' Chapter 13. 블록 이동하기 접근법 1 이동가능한 방법 12가지 1. 상하좌우 4가지 2. 가로로 되었을 때 아래쪽으로 회전 2가지, 위쪽으로 회전 2가지 3. 세로로 되었을 때 오른쪽으로 회전 2가지, 왼쪽으로 회전 2가지 경우 3가지로 나눠서 구현하기 로봇이 2칸을 차지하니 방문 표시를 visited = []로 하기 계속 시간초과가 나서 로봇의 위치를 list -> set ---.. 2023. 4. 9.
이것이 취업을 위한 코딩 테스트다 CHAPTER 8 다이나믹 프로그래밍 다이나믹 프로그래밍 사용 조건 큰 문제를 작은 문제로 나눌 수 있다. 작은 문제에서 구한 정답은 그것을 포함하는 큰 문제에서도 동일하다. 메모이제이션 다이나믹 프로그래밍을 구현하는 방법 중 하나 한 번 구한 결과를 메모리 공간에 메모해두고 같은 식을 다시 호출하면 메모한 결과를 그대로 가져오는 기법 메모이제이션은 값을 저장하는 방법으로 캐싱(Caching)이라고도 한다. 다이나믹 프로그래밍 큰 문제를 작게 나누고, 같은 문제라면 한 번씩만 풀어 문제를 효율적으로 해결하는 알고리즘 기법 탑다운 방식 큰 문제를 해결하기 위해 작은 문제를 호출 재귀함수 활용 하향식 보텀업 방식 단순히 반복문을 이용하여 작은 문제를 먼저 해결하고, 해결된 작은 문제를 모아 큰 문제를 해결하는 방식 상향식 문제 2. 1로 만들기.. 2023. 4. 9.
모듈로 연산(Modulo Operation) 기본 소수 모듈러 (Modular arithmetic)는 정수 계산에서 일종의 나머지 연산이다. 즉, 어떤 정수를 다른 정수로 나눈 나머지를 계산하는 것이다. 소수 모듈러 연산은 특히 암호학과 관련된 계산에서 매우 유용하다. 예를 들어, 두 소수 p와 q를 곱한 수 n을 사용하여 RSA 암호화를 할 때, 이러한 연산이 사용된다. 보통 소수 모듈러 연산은 mod 연산자로 표시된다. 예를 들어, a mod b는 a를 b로 나눈 나머지를 나타낸다. 소수 모듈러 연산은 다양한 수학적 성질을 가지고 있다. 예를 들어 a mod b == c 이고 d mod b = e 이면, (a+d) mod b = (c+e) mod b 이다. 이러한 성질들을 암호학에서 매우 중요하게 사용되며, 특히 공개키 암호 시스템에서는 소수 모듈러.. 2023. 4. 7.
[프로그래머스] 자물쇠와 열쇠 - Python https://school.programmers.co.kr/learn/courses/30/lessons/60059 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ''' Chapter 12. 좌물쇠와 열쇠 접근법 1 완전 탐색 : 열쇠를 채울 수 있는 모든 경우 탐색 열쇠의 오른쪽 가장 아래 부분과 자물쇠의 왼쪽 가장 위 부분만 겹치는 경우에서 열쇠의 왼쪽 가장 위 부분과 자물쇠의 오른쪽 가장 아래 부분이 겹치는 경우까지 + 열쇠 90도 (4번) -> indexError를 막기 위해 자물쇠의 상하좌우를 연장 ex) 프로그래머스 예시 lock = [[3,3,.. 2023. 4. 5.
반응형