논리적사고(9)
-
[프로그래머스][LV.1] 2016년 | python3
문제 링크: 2016년 문제 설명문제 설명2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요.제한사항- 2016년은 윤년입니다.- 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다) 문제 풀이약간의 도움을 받았다...처음에 날짜 관련 함수를 써야하나...아득했는데 딕셔너리로 풀 수 있는 방법이 있었다.딕셔너리로 각 달의 일 수를..
2025.01.24 -
[프로그래머스][LV.1] 폰켓몬 | python3
문제 링크: 폰켓몬 문제 설명문제 설명당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다.첫 번째(3번), 두 번째(1번) 폰켓몬을 선택첫 번째(3번), 세 번째(2..
2025.01.23 -
[프로그래머스][LV.1] 카드 뭉치 | python
문제 링크: 카드 뭉치 문제 설명문제 설명코니는 영어 단어가 적힌 카드 뭉치 두 개를 선물로 받았습니다. 코니는 다음과 같은 규칙으로 카드에 적힌 단어들을 사용해 원하는 순서의 단어 배열을 만들 수 있는지 알고 싶습니다.원하는 카드 뭉치에서 카드를 순서대로 한 장씩 사용합니다.한 번 사용한 카드는 다시 사용할 수 없습니다.카드를 사용하지 않고 다음 카드로 넘어갈 수 없습니다.기존에 주어진 카드 뭉치의 단어 순서는 바꿀 수 없습니다.예를 들어 첫 번째 카드 뭉치에 순서대로 ["i", "drink", "water"], 두 번째 카드 뭉치에 순서대로 ["want", "to"]가 적혀있을 때 ["i", "want", "to", "drink", "water"] 순서의 단어 배열을 만들려고 한다면 첫 번째 카드 뭉..
2025.01.23 -
[프로그래머스][LV.1] 푸드 파이트 대회 | python3
문제 링크: 푸드 파이트 대회 문제 설명문제 설명수웅이는 매달 주어진 음식을 빨리 먹는 푸드 파이트 대회를 개최합니다. 이 대회에서 선수들은 1대 1로 대결하며, 매 대결마다 음식의 종류와 양이 바뀝니다. 대결은 준비된 음식들을 일렬로 배치한 뒤, 한 선수는 제일 왼쪽에 있는 음식부터 오른쪽으로, 다른 선수는 제일 오른쪽에 있는 음식부터 왼쪽으로 순서대로 먹는 방식으로 진행됩니다. 중앙에는 물을 배치하고, 물을 먼저 먹는 선수가 승리하게 됩니다.이때, 대회의 공정성을 위해 두 선수가 먹는 음식의 종류와 양이 같아야 하며, 음식을 먹는 순서도 같아야 합니다. 또한, 이번 대회부터는 칼로리가 낮은 음식을 먼저 먹을 수 있게 배치하여 선수들이 음식을 더 잘 먹을 수 있게 하려고 합니다. 이번 대회를 위해 수웅..
2025.01.20 -
[프로그래머스][LV.1] 가운데 글자 가져오기 | python3
문제 링크: 가운데 글자 가져오기 문제 설명문제 설명단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.제한사항- s는 길이가 1 이상, 100이하인 스트링입니다. 문제 풀이문자열의 길이를 구한다. 그 다음 길이가 홀수이면 가운데 글자를 가져오는데 인덱스는 0부터 시작하기 때문에 2로 나눈 몫값이 가운데 자리 인덱스가 된다. 길이가 짝수이면 가운데 2글자를 가지고 온다. 만약 길이가 4라면 2,3번째 글자를 가지고 와야 하는데 인덱스 값으로는 1,2 이다. 즉 길이를 2로 나눈 값에 -1한 수부터 2로 나눈 값까지의 글자를 가지고 온다. 인덱스 슬라이싱으로 표현하면 [n-1:n+1] 내코드def solution(s): ..
2025.01.17 -
[프로그래머스][LV.1] 행렬의 덧셈 | python3
문제 링크: 행렬의 덧셈 문제 설명문제 설명행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.제한사항- 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. 문제 풀이answer에 미리 리스트 형태를 만들어놔야한다.answer의 형태를 미리 만들어 놓고 주어진 배열의 인덱스를 돌아서 주어진 배열의 인덱스에 해당되는 값들을 더한 값을 answer의 해당하는 인덱스에 넣는다. 내코드def solution(arr1, arr2): answer = [[0 for _ in range(len(arr1[0]))] for _ in ra..
2025.01.17