알고리즘 32

[Python/프로그래머스] 이진 변환 반복하기 - level 2

❕ 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❕ 첫 번째 풀이 (Test Case 11개 중 9개 성공) 왜 나는 한방에 맞추는 법이 없을까 ???????????????? 효율성 테케가 있는 문제도 아닌데 2개에서 또 시간 초과가 났다. 내가 이 문제를 풀이한 로직은 아래와 같다. 1. Input s 에서 0을 찾아서 삭제 2. 1만 남은 s를 2진수로 변환 3. s의 길이가 1이 될 때 까지 1-2 반복 def solution..

[Python/프로그래머스] 올바른 괄호 - level 2

🖤 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12909# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🖤 첫 번째 풀이 ( 정확성 - 성공, 효율성 - 실패 ) 왜 항상 내 첫 번째 풀이는 효율성에서 다 시간초과가 나는걸까??? (너무 슬퍼) 내가 처음으로 생각한 방식은 한 글자씩 반복문을 돌면서 1. 무조건 False 인 경우먼저 예외처리 (맨 앞글자가 ' ) ' or 맨 뒷글자가 '( ' 인 경우 False return) 2. ')' 가 나오면 바로 직전인 '(' 와 함께 리스트..

[Python/프로그래머스] 최솟값 만들기 - level 2

🧡 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🧡 첫 번째 풀이 ( 정확성 : 정답, 효율성 : 실패 ) 1. (A 리스트에서 가장 큰 값 * B 리스트에서 가장 작은 값) 들의 합이 최솟값이다 2. max(), min(), remove() 함수를 이용해 각각 리스트에서의 최댓값, 최솟값을 구한 후 지우는 걸 반복 처음엔 이런 로직으로 구현했으나,, def solution(A,B): answer = 0 A1 = A2 = A.cop..

[Python/프로그래머스] JadenCase 문자열 만들기 - level 2

🤍 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사내 코딩테스트 때문에 프로그래머스 모든 문제에서 'Python3+level2' 로 맞춰놓고 처음부터 푸는 중인데 어이가 없어서 포스팅하는 문제 🤍 첫 코드 (실패) def solution(s): answer = '' word = s.split() for i in range(0, len(word)): temp = '' for j in range(0, len(word[i])): if j..

[Python/프로그래머스] 두 큐 합 같게 만들기 - 2022 KAKAO TECH INTERNSHIP

❕ 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❕ 내 풀이 방법 1. Queue1, Queue2 각각의 sum을 비교 2. Sum 값이 큰 큐에서 작은 큐로 첫 번째 원소 보내기 3. Sum 값이 같을 때까지 1-2번 반복 4. Queue1과 Queue2의 모든 원소를 바꿨다 원래대로 돌아오는 len(Queue1)*3 번 만큼 1-2를 반복해도 sum 값이 같지 않다면 -1 return ❕ 첫 번째 코드(실패) from coll..

[프로그래머스/python] 메뉴 리뉴얼 - 2021 KAKAO BLIND RECRUITMENT

문제 : https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 이번 문제는 효율성도 보지 않은 정말 간단한 combination+sorting 문제다 테스트케이스3에서 WX = XW 로 봐야하기 때문에 맨 처음에 orders 리스트 안의 변수 전부를 오름차순 정렬 해주었다. 코드는 너무 간단하니 아래에서 :) from itertools import combinations def solution(orders, cour..

[프로그래머스/Python] 순위 검색 - 2021 KAKAO BLIND RECRUITMENT

문제 : https://programmers.co.kr/learn/courses/30/lessons/72412 int(info_list[j][4])): flag=False break if(query_list[i][k] == '-' or query_list[i][k] == info_list[j][k]): continue else: flag = False break if flag == True: temp.append(info_list[j]) cnt += 1 answer.append(cnt) return answer 어떻게 하면 효율적이게 코드 짤 지를 좀 고민했는데.. 답이 없어서...... (그리고 맨날 C++로만 코딩하다 파이썬은 오랜만이라.. 라는 핑계로) 그냥 인터넷 찾아봤다.... 훌쩍 근데 이런 ..

[백준/C++] 23288번 주사위 굴리기2 - 삼성SW기출

문제 : https://www.acmicpc.net/problem/23288 23288번: 주사위 굴리기 2 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 가장 왼 www.acmicpc.net [ 시뮬레이션 + BFS ] 이번 문제 또한 아주 친절하게 문제가 설명하는대로만 짜면 되는 문제이다.. 그런데 주사위 방향을 어떻게 매번 돌릴지...? 를 너무 오랫동안 고민했다 🤣 int dice[7] = { 0,1,2,3,4,5,6 }; int d1 = dice[1]; int d2 = dice[2]; int d3 = dice[3]; int d4 = dice[4]; i..

[백준/C++] 21610번 마법사 상어와 비바라기 - 삼성SW기출

문제 : https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net [ 시뮬레이션 ] 이 문제는 BFS나 DFS도 필요없는 찐찐찐 시뮬레이션 문제다. (지금까지 푼 것 중에 가장 쉬움..) 위의 과정 그대로 짜면 정말 끝이다. 1) 구름 이동 : 1번째 행-N번째 행, 1번째 열-N번째 열이 연결 되어 있는 부분만 조심 하면 된다. if (ny N) ny -= N; if..

[백준/C++] 23289번 온풍기 안녕! -삼성SW기출

문제 : https://www.acmicpc.net/problem/23289 23289번: 온풍기 안녕! 유난히 추운 날씨가 예상되는 이번 겨울을 대비하기 위해 구사과는 온풍기를 설치하려고 한다. 온풍기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기 www.acmicpc.net [ BFS + 시뮬레이션 ] 바람이 나오는거, 온도 조절하는건 별로 문제가 안되었는데 벽의 유무에 따라 바람이 나가지도, 조절되지도 않는 부분 짜는게 가장 생각하는 시간이 많이 들었다 : 해당 좌표에 0과 1로 방향포함 벽 정보 저장 queue q; //오, 왼, 위, 아래 : 온풍기 방향=d const int dy[5] = { 0,0,0,-1,1 }; const int dx[5] = {..