💻 Development 408

[프로그래머스/Programmers] 위장

위장 📌 문제 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. ⚠️ 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. ..

[백준/BOJ] 연구소 3

17142 - 연구소 3 📌 문제 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고, 활성 상태인 바이러스는 상하좌우로 인접한 모든 빈 칸으로 동시에 복제되며, 1초가 걸린다. 승원이는 연구소의 바이러스 M개를 활성 상태로 변경하려고 한다. 연구소는 크기가 N×N인 정사각형으로 나타낼 수 있으며, 정사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽, 바이러스로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 활성 바이러스가 비활성 바이러스가 있는 칸으로 가면 비활성 바이러스가 활성으로 변한다. 예를 들어, 아래와 같이 연구소가 생긴 경우를 살펴보자...

[주간 회고] 2021년 4월 첫째 주

🙇‍♂️ 2021년 4월 첫째 주 주간 회고 3월 월간 회고에서 언급했던 것처럼 이번 달부터는 주간 회고까지 써보려고 한다. 일주일 동안 어떤 공부를 했는지 더 잘 파악하기 위함이다. 1. 알고리즘 풀이 커밋 히스토리에서 볼 수 있듯이 화요일인 30일부터 오늘까지 하루도 빠지지 않고 문제를 풀었다. 월요일은 생일이라 놀았다. 2. 면접 준비 금요일은 27일에 본 가비아 코테 결과가 나오는 날이기 때문에 굉장히 기다려졌다. 결과 발표 문자가 왔을 때 바로 확인하지 않고 자소설이랑 단톡방 분위기 좀 살펴봤다. 나는 400점 만점에 384점을 받았는데, 생각보다 400 탈 이라는 사람들이 많아 걱정됐다. 만점이 아니였는데 합격한 걸 보니 자소서가 꽤 비중을 차지하지 않았나 싶다. 생각보다 면접 일자가 너무 빨..

[프로그래머스/Programmers] 네트워크

네트워크 📌 문제 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. ⚠️ 제한사항 컴퓨터의 개수 n은 1 이상 200 이하인 자연수입니다. 각 컴퓨터는 0부터 n-1인 정수로 표현합니다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 com..

[프로그래머스/Programmers] 3진법 뒤집기

3진법 뒤집기 📌 문제 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. ⚠️ 제한사항 n은 1 이상 100,000,000 이하인 자연수입니다. 📋 코드 def solution(n): change = [] while n >= 3: rest = n % 3 change.append(str(rest)) n //= 3 change.append(str(n)) result = 0 for i in range(len(change)): sup = len(change) - i - 1 result += int(change[i]) * 3 ** sup return result 💡 한마디 앞뒤로 뒤집어주는 과정을..