🗂️ 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 접근법 alpha라는 리스트에 알파벳 모음인 A, E, I, O, U를 저장해두고 product를 통해 alpha에 대한 중복 순열을 생성한다. 생성한 중복 순열을 정렬하고 word에 해당하는 인덱스를 뽑아내면 된다. 😎 내 코드 from itertools import product def solution(word): answer = 0 alpha = ['A', 'E', "I..
전체 글
🗂️ 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 접근법 permutations를 이용하여 dungeons에 접근할 순서를 나타내는 모든 인덱스에 대한 경우의 수를 생성한다. 각각의 경우의 수에서 최대로 탐험할 수 있는 던전의 수를 구해서 max_visit 리스트에 저장한다. 이후 최종적으로 max_visit에서 최댓값을 출력한다. 😎 내 코드 from itertools import permutations def soluti..
🗂️ 문제 링크: https://www.acmicpc.net/problem/2529 2529번: 부등호 두 종류의 부등호 기호 ‘’가 k개 나열된 순서열 A가 있다. 우리는 이 부등호 기호 앞뒤에 서로 다른 한 자릿수 숫자를 넣어서 모든 부등호 관계를 만족시키려고 한다. 예를 들어, 제시 www.acmicpc.net 💡 접근법 부등호 기호 앞뒤에 넣을 수 있는 숫자 0~9를 갖는 nums 리스트로 생성한다. permutations를 활용하여 K+1자리수에 해당하는 순열들을 생성한다. 부등호에 따라 값을 비교하고 비교 결과가 옳지 않을 경우에는 break문을 통해 for 문을 빠져나온다. is_valid 변수를 활용하여 true일 경우, 즉 부등호에 따라 비교 결과가 옳은 순열에 대해서만 answers에 ..
🗂️ 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 접근법 순열을 사용하여 numbers에서 만들 수 있는 모든 경우의 수를 생성하여 set에 저장한다. 이때 중복된 값이 저장될 수 있으므로 set을 사용한다. 모든 경우의 수에 대해 소수인지 판별한다. 👀 배운 코드 from itertools import permutations def solution(numbers): answer = 0 def is_prime(n): if n..
🗂️ 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 접근법 return되는 값의 행과 열을 곱하면 brown+yellow가 된다. 따라서 행과 열의 값은 brown+yellow를 소인수분해한 값이다. 따라서 두 개의 수로 이루어지도록 소인수 분해를 수행하고 그 쌍들을 prime_list에 저장한다. 이후 소인수분해 쌍을 for문으로 돌면서 brown과 yellow 개수를 만족하는 조건에 해당하는 소인수가 answer이 된다. ..
본 게시글은 김영한 강사님의 [김영한의 실전 자바 - 기본편]을 수강하며 작성한 글입니다. 01. 클래스가 필요한 이유1. ClassStart1 - 변수 사용package class1;public class ClassStart1 { public static void main(String[] args) { String student1Name = "학생1"; int student1Age = 15; int student1Grade = 90; String student2Name = "학생2"; int student2Age = 16; int student2Grade = 80; System.out.println("이름:" ..
🗂️ 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 접근법 학생 수는 3명이고, 각각의 학생이 찍는 답은 일정한 주기로 반복하므로 한 주기에 대해서만 리스트를 생성한다. 이후 맞는 값의 개수를 저장하는 answer_cnt 딕셔너리를 선언한다. answer 값을 순회하면서 학생이 찍은 답과 같으면 cnt를 1 증가시킨다. 이후 값에 대해 딕셔너리를 내림차순 정렬한다. 내림차순으로 정렬되었기 때문에 0번 인덱스에 해당하는 키가 가..
🗂️ 문제 링크: https://www.acmicpc.net/problem/3986 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net 💡 접근법 단어의 알파벳 하나하나를 스택의 마지막 요소와 비교한다. 이때 같을 경우 스택의 마지막 요소를 pop하고, 같지 않을 경우 알파벳을 스택에 append한다. 알파벳을 모두 순회하고 결과적으로 스택이 비어있다면 좋은 단어로 판단할 수 있다. 😎 내 코드 import sys N = int(sys.stdin.readline()) words = [] for _ in range(N): w..