본문 바로가기

분류 전체보기521

[ 파이썬(python) ] 백준 2775 - 부녀회장이 될테야 📍 백준 2775 - 부녀회장이 될테야 백준 2775 - 부녀회장이 될테야 💡 나의 풀이 이 문제는 DP, 재귀로 풀 수 있지만, DP로 푸는방법이 시간이 훨씬 단축된다. 재귀로 풀때는 python3에서 시간초과에 걸리므로 pypy로 제출해야한다. DP 풀이방법이다. 0층의 i는 i명이 살기때문에 제일 아래는 [1, 2, 3, 4...]다. 문제는 층수가 증가 할때마다 이전 층수의 1호부터 b호까지 더한값을 사용해야하는데 이때 DP가 쓰인다. arr[i] += arr[i-1]로 1호부터 b호까지 값을 누적시킨다. 층수가 올라갈때는 3번 반복문 바깥에 하나 더 선언한다. for _ in range(k) 재귀 풀이방법이다. a: 층, b: 호 하단의 사진처럼 이전 index + 아래 index를 더해준다. .. 2021. 6. 10.
[ 파이썬(python) ] 백준 1712 - 손익분기점 📍 백준 1712 - 손익분기점 백준 1712 - 손익분기점 💡 나의 풀이 손익 분기점에 대한 이해가 있어야 이 문제를 풀 수 있다. 처음에 while문을 사용하여 풀었는데 다시 보니까 A, B, C가 21억 이하의 자연수기때문에 시간초과판정이 났다.(게다가 시간제한도 무려 0.35초 밖에 안된다.) 반복문을 사용하지 않고서 풀 수 있는 방법은 단순 사칙연산일텐데 공식이 잘 떠오르지 않았다. ㅠㅠ 구글링하다 코딩펜님 영상을 봤는데 이해가 잘 됐다. 결론적으로 손익분기점은 고정비용 + 가변비용 * n < 판매비용 * n 과 같이 나타 낼 수 있는데 다음과 같이 식을 정리 할 수 있다. (고정비용은 a, 가변비용은 b, 판매비용은 c로 가정했다.) a + (b * n) = (c * n) a = (c * n).. 2021. 6. 9.
[ 리액트(React) ] Key:Value형태인 Object에 map 함수 사용하기 📍 Key:Value형태인 Object에 map 함수 사용하기 다음 과목:점수 형태인 Object에서 map 함수를 사용할 때 3가지 방법이 있다. Object.entries: array 형태로 [key, value]를 반환한다. 주의 할 점은 반환 시 객체의 순서를 보장하지 않으므로 정렬을 먼저 하고 나서 사용하는 것을 권장한다. (Object.entries(obj).sort((a, b) => b[0].localeCompare(a[0]));, 출처: MDN) Object.keys: key만 반환한다. Object.values: value만 반환한다. const subjects = { math: 90, english: 100, science: 80 }; // idx는 index 번호를 반환하고 따로 명시.. 2021. 6. 8.
[ 파이썬(Python) ] 3개의 주사위를 던져 n개의 동일한 값 찾기 📍 3개의 주사위를 던져 n개의 동일한 값 찾기 제목을 어렵게 지었지만 간단하게 말하면 3개의 값을 비교했을 때 3개가 동일한 경우, 2개가 동일한 경우, 모두 다른 경우를 찾는 조건문을 작성하는 방법이다. 여담이지만 boj_2480 - 주사위 세개가 이 방법을 사용해서 풀 수 있다. a, b, c = map(int, input().split()) if a == b and b == c: print('3개가 동일한 경우') elif a == b or b == c: print('2개가 동일한 경우') elif a == c: print('2개가 동일한 경우') else: print('모두 다른 경우') 2021. 6. 8.
[ 파이썬(python) ] 백준 2480 - 주사위 세개 📍 백준 2480 - 주사위 세개 백준 2480 - 주사위 세개 💡 나의 풀이 이 문제의 핵심은 같은 눈이 몇 개가 나왔는지 분류를 하는 작업이다. 내가 풀었던 방법은 set의 특징 중 중복 제거를 이용했는데 주사위를 더 많이 던질 때 사용하면 괜찮은 방법인 것 같다. 다시 본론으로 돌아가 len(set(arr)) == 1이면 모든 수가 같은 수이기 때문에 1개로 줄어든 것이다. 따라서 같은 눈이 3개라고 할 수 있다. 반대로 len(set(arr)) == 3이면 모두 다르기 때문에 중복제거가 일어나지 않았다. 이제 나머지 조건인 같은 눈이 2개만 나오는 경우를 찾으면 되는데 set으로 찾을 방법이 떠오르지 않아 반복문 + count + index를 이용했고 count가 2개 이상인 index를 찾아 a.. 2021. 6. 8.