본문 바로가기

수학21

[ 파이썬(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.
[ 파이썬(python) ] 백준 2010 - 플러그 📍 백준 2010 - 플러그 백준 2010 - 플러그 💡 나의 풀이 처음 문제 풀 때 각각 멀티탭을 꽂을 수 있는 개수만큼 max값만 갱신하면 되는 거 아냐?라고 생각했는데 그게 아니었다. 멀티탭에 또 멀티탭을 꽂을 수 있다는 사실을 잊었다. 나처럼 잘 이해가 안 되는 사람들을 위해 그림을 하나 그려봤다. (발(🦶🏾) 그림 주의) 예를 들어 입력이 4 4 3 2 1 이라고 가정해보자. 벽 단자는 그림의 이해를 위해서 그린 것이고 멀티탭만 보면 된다. 이미 꽂혀 있는 멀티탭을 제외하고 남은 멀티탭에서 최대 개수를 구할 때 규칙을 찾아보면 각각의 멀티탭은 무조건 하나씩은 꽂혀있기 때문에 총 멀티탭에서 꽂을 수 있는 구멍 - (멀티탭의 수 - 1)가 된다. 그래도 이해가 잘 안 되면 그림을 다시 한번 살펴보자.. 2021. 6. 8.
[ 파이썬(python) ] 백준 1085 - 직사각형에서 탈출 📍 백준 1085 - 직사각형에서 탈출 백준 1085 - 직사각형에서 탈출 💡 나의 풀이 직사각형의 경계선까지 이동하면 되는데, 결론적으로 경계선( w 혹은 h)에 더 가까운 수를 구하면 된다. 또한 직사각형이기 때문에 대각선은 고려하지 않는다. 나의 코드에서 b의 min(x-0, y-0)은 min(x, y)와 동일하지만 사고 흐름을 남겨놓고 싶어 0을 붙였다. 더욱 간결하게 작성하려면 다른 사람의 코드를 참고하자. # 나의 코드 x, y, w, h = map(int, input().split()) a = min(w - x, h - y) b = min(x - 0, y - 0) print(min(a, b)) # 다른사람의 코드 x, y, w, h = map(int, input().split()) print.. 2021. 6. 8.
[ 파이썬(python) ] 백준 1009 - 분산처리 📍 백준 1009 - 분산처리 백준 1009 - 분산처리 ⚡️ 나의 풀이 문제 자체는 어렵지 않았다. 단순하게 a ** b % 10을 구하면 되는 문제였는데, 2가지를 신경 쓰지 못했다. 정수 b의 범위: 1 2021. 6. 7.
[ 파이썬(python) ] 백준 1110 - 하얀 칸 📍 백준 1110 - 하얀 칸 백준 1110 - 하얀 칸 ⚡️ 나의 풀이 문제 중 번갈아가며 색칠 되어있다.라는 힌트에서 규칙을 찾을 수 있다. 저번에 풀었던 boj_1018 체스판 다시 칠하기에서 규칙을 볼 수 있다. 또, 이 문제를 풀고 boj_1018 체스판 다시 칠하기 문제를 풀어보는 것을 추천한다. 입력을 받는다. 8 * 8 배열에서 가장 왼쪽 위칸이 흰색이므로 짝수인 자리와 동시에 말(F)인 값을 찾는다. cnt를 누적시킨다. chess = [input() for _ in range(8)] cnt = 0 for i in range(8): for j in range(8): if not (i+j) % 2 and chess[i][j] == 'F': cnt += 1 print(cnt) 2021. 5. 28.