# 2차원 리스트 시계 방향 90도 회전 def roate_a_matrix_by_90_degree(arr): n = len(arr) # 행 길이 m = len([arr[0]]) # 열 길이 result = [[0] * n for _ in range(m)] # 결과 리스트 for i in range(n): for j in range(m): result[j][n-1-i] = arr[i][j] return result 규칙이 존재한다. 1. 회전 후 배열의 X 인덱스 == 회전하기 전 배열의 Y 인덱스 2. 회전 후 배열의 Y 인덱스 == (배열 크기 - 1) - 회전하기 전 배열의 X 인덱스
알고리즘
10_자물쇠와 열쇠 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 happenundo.tistory.com
09_문자열 압축 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열 happenundo.tistory.com
07_럭키 스트레이트 18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net 시간 제한이 1초였고, N도 99,999,999이하인데 어 happenundo.tistory.com
06_무지의 먹방 라이브 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그 happenundo.tistory.com
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열을 압축하여 표현한 문자열 중 가장 짧은 것의 길이를 리턴하면 되는 문제이다. 문자열 s의 길이가 1000이하고 시간 제한은 1초이므로 O(S^2)도 가능한 문제라서 완전탐색으로 풀면 된다. 내 풀이 s = input() def solution(s): answer = 987654321 previous = "" temp = 0 check = True for i in range(1, len(s) + 1): index = 0 while index < len(s) - 1: if previous == s[inde..
숫자(0~9)와 알파벳 대문자로 이루어진 문자열 중, 모든 알파벳을 오름차순으로 먼저 출력하고, 그 후 모든 숫자를 더한 값을 이어서 출력하면 되는 문제다. 시간 제한은 1초고, 문자열의 길이는 최대 10,000이다. -> O(NlogN)까지 가능하다는 생각 간단한 구현문제다. 1. 문자열의 원소들을 하나씩 확인한다. 2. 만약 확인한 원소가 문자일 경우 다른 문자열에 삽입한다. 3. 만약 확인한 원소가 숫자일 경우 total 변수에 숫자를 더한다. 4. 1~3과정을 마친 후 문자만 들어가 있는 문자열을 오름차순 정렬한다. 5. 문자만 들어있는 문자열을 출력하고, total변수를 출력한다. 내 코드 # Q_08_문자열 재정렬 s = list(input()) arr = [] total = 0 for cha..
18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net 시간 제한이 1초였고, N도 99,999,999이하인데 어차피 반으로 나눠서 더하므로 sum 함수를 이용해서 더해주면 된다. 내 풀이 # Q_07_럭키 스트레이트 arr = list(map(int, input())) length = len(arr) if sum(arr[:length // 2]) == sum(arr[length // 2:]): print("LUCKY") else: print("READY") 풀이 코드 # Q_07_럭키 스트레이트 n = input() length = len(n) summary = 0 ..

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스에 있는 문제다. 시간 제한이 1초이므로 2,000만 번 정도의 연산이 가능하다고 생각할 수 있다. 주어진 food_times 리스트의 길이가 정확성 테스트의 경우 1 이상 2,000 이하이고, 효율성 테스트의 경우 1이상 200,000 이하이다. 정확성 테스트만 보고 O(N^2)도 가능하겠다고 생각했지만 효율성 테스트를 보고 O(NlogN)이상은 안되겠다는 생각이 들었다. 그리고 K의 범위도 정확성 테스트의 경우 1 이상 2,000,000 이하이고 효율성 테스트의 경우 2 X 10^13개였다. 그..
주어진 볼링공의 개수(N)이 1,000 이하고, 시간 제한은 1초였다. 그러므로 O(N^2)의 시간복잡도로 충분히 풀 수 있다. 그래서 처음에는 단순하게 1번~N번의 볼링공까지 for문을 돌면서 자기 다음 번호 ~ N번까지의 공들을 확인해서 자기 자신과 같은 값 빼고 +1을 해주면 답이 나온다고 생각했다. 좀 더 생각해보니 더 간단한 로직이 있었다. 각 볼링공 무게를 인덱스로 하는 리스트를 만들어서 볼링공 무게마다 볼링공이 몇개 있는지 저장한다. 그 후 특정 볼링공 무게에 해당하는 볼링공의 개수가 0이 아닌 경우, 특정 볼링공 무게의 볼링공 개수 개수 * (전체 볼링공 개수 - 특정 볼링공 무게의 볼링공 개수) 를 무게마다 구해서 더해준 다음에 2로 나눠주면 답이 나온다. 내 풀이 # Q_05_볼링공 고..