본문 바로가기
728x90
반응형

프로그래머스182

[프로그래머스] 예상 대진표 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 전체 참가자를 두 부분으로 나누고 두 참가자의 위치가 서로 분리되어 있으면 결과를 도출하는 방식으로 해결했습니다. 정답이 도출되어 반환되기 전까지 계속 반복합니다. while (True) 가운데 지점을 정합니다. center = n // 2 만약 두 참가자가 같은 부분에 있는데 중앙보다 큰 쪽에 있다면 if (a > center) and (b > center) 참가자의 번호를 다시 1부터 나열되도록 맞추기 위해 각 참가자의 번호에서 중앙의 값을 빼준 값으로 새로 저장.. 2023. 7. 10.
[프로그래머스] K번째수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 매개변수로 입력받은 commands의 1차원 배열마다 각 결과를 도출해야 하므로 commands의 1차원 배열 크기만큼 반복한다. for i in range(len(commands)) 추출한 commands의 1차원 배열의 값 중 i와 j의 범위의 값을 매개변수로 입력받은 배열에서 슬라이싱으로 추출하여 새로운 리스트로 저장한다. li = array[commands[i][0] - 1 : commands[i][1]] 추출한 값을 오름차순으로 정렬한다. li.sort() 정답 리스트에.. 2023. 7. 10.
[프로그래머스] 문자열 내 마음대로 정렬하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 인덱스 문자가 동일할 경우 사전순으로 정렬한 결과를 반환해야 하므로 먼저 사전순으로 문자열 리스트의 원소를 정렬한다. strings.sort() 문자열 리스트의 각 원소와 인덱스 문자를 저장할 딕셔너리를 생성한다. d = {} 문자열 리스트의 각 원소를 하나씩 추출한다. for i in strings 추출한 원소를 key로 하고 인덱스 문자를 value로 하여 딕셔너리에 추가한다. d[i] = i[n] 딕셔너리의 원소들을 value의 값으로 정렬한다. items() 메서드를 활용.. 2023. 7. 9.
[프로그래머스] 숫자 문자열과 영단어 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 각 영단어를 숫자로 바꾸기 위해 각 영단어를 미리 리스트로 저장해 둔다. 저장할 때 각 단어를 각 인덱스로 바로 바꿔주기 위해 0부터 저장한다. words = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"] 원하는 지점에서 멈추기 위해 무한 반복문을 사용하여 구현한다. while (True) 각 영단어의 원소를 하나씩 추출한다. for i in words 만약 추출한 연단어가 문자열에.. 2023. 7. 8.
[프로그래머스] [1차] 비밀지도 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 각 정수 배열을 2진수로 변환하고 각 2진수를 각 자리별로 비교하여 하나라도 벽이면 벽으로 구현하니 시간이 초과되었다. 하여 각 정수 배열의 각 원소별로 추출하여 각 자리를 비교하여 하나라도 벽이면 벽으로 저장하고 역순으로 출력한 결과를 저장하도록 구현하였다. 정수 배열의 원소의 개수는 지도의 한 변의 길이와 동일하므로 지도의 한 변의 길이만큼 반복한다. for i in range(n) 각 변마다 결과를 저장할 리스트를 생성한다. li = list() 각 배열의 원소를 이진수로 .. 2023. 7. 8.
[프로그래머스] 카펫 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 노란색 카펫 모양의 가로의 길이와 세로의 길이를 구하고 그 테두리를 갈색으로 채웠을 때 가로의 길이가 세로의 길이보다 같거나 큰 직사각형 모양의 카펫이 되면 된다. 노란색 카펫의 세로 길이를 저장할 변수를 생성하고 세로의 최소 길이인 1로 초기화한다. i = 1 원하는 지점에서 멈추기 위해 무한 반복문으로 구현한다. while (True) 만약 세로의 길이로 노란색 카펫의 개수를 나누었을 때 나누어 떨어지면 if (yellow % i == 0) 노란색 카펫의 모양이 정해진 경우이.. 2023. 7. 8.
[프로그래머스] 영어 끝말잇기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 탈락자가 생기지 않을 경우 [0, 0]을 반환해야 하므로 기본 정답을 [0, 0]으로 설정한다. answer = [0, 0] 사용한 단어들을 저장할 리스트를 생성하고 시작 단어를 추가한다. li = [words[0]] 끝말잇기 차례를 나타낼 변수를 생성하고 1로 초기화한다. turn = 1 시작 단어는 이미 들어가 있기 때문에 다음 단어부터 각 단어를 추출한다. for i in range(1, len(words)) 사용한 단어의 리스트에서 이전 값을 저장한다. pre = li[i.. 2023. 7. 8.
[프로그래머스] 짝지어 제거하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 문자열을 매번 짝지어진 문자열을 제거하고 이어 붙이는 작업을 문자열이 공백이 될 때까지 반복하는 방법으로 코드를 작성하면 반복문이 많이 수행되게 되어 시간 초과가 뜬다. 하여 반복문을 1개만 작성하여 문제를 해결하기 위해 스택(Stack) 구조를 사용하여 문제를 해결하였다. 스택으로 사용할 리스트를 생성한다. li = list() 입력받은 문자열의 각 문자를 추출한다. for i in s 만약 스택이 비어있으면 무조건 추출한 문자를 스택에 삽입한다. if (len(li) == 0.. 2023. 7. 7.
[프로그래머스] 크기가 작은 부분 문자열 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 부분문자열을 저장할 리스트를 생성한다. li = list() 문자열 t의 길이만큼 반복한다. for i in range(len(t)) 만약 다음 인덱스 번호(i와 문자열 p의 길이의 합)가 문자열 t의 길이보다 작거나 같으면 if (i + len(p) 2023. 7. 7.
[프로그래머스] 최소직사각형 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 지갑의 크기를 가장 작게 만들려면 각 길이를 작은 길이별로, 큰 길이별로 구분하여 각각 가장 큰 값만 추출하여 만들면 된다. 각 명함의 원소를 하나씩 추출하여 for i in sizes 더 짧은 길이가 앞에 오도록 다시 정렬한다. i.sort() 가로의 길이를 저장할 변수를 만들고 초기화한다. length = 0 세로의 길이를 저장할 변수를 만들고 초기화한다. width = 0 각 명함의 원소를 하나씩 추출한다. for i in sizes 추출한 원소의 첫 번째 값 중 가장 큰 .. 2023. 7. 7.
728x90
반응형