Algorithm/백준(BOJ)111 [ 파이썬(python) ] 백준 1244 - 스위치 켜고 끄기 📍 백준 1244 - 스위치 켜고 끄기 백준 1244 - 스위치 켜고 끄기 ⚡️ 나의 풀이 문제가 조금 길었지만, 핵심 포인트는 다음과 같다. 남학생: 자기가 받은 수의 배수인 스위치 번호의 상태를 바꾼다. 여학생: 자기가 받은 수와 같은 번호인 스위치 번호를 중심으로 좌우가 대칭이면서 가장 많은 스위치를 포함하는 구간의 상태를 모두 변경한다. 그리고 처음에 index를 편하게 보기 위해 arr[0]에 이 문제와 관련 없는 값인 -3333을 넣었다. 남학생의 경우는 index가 배수인 경우를 찾을 때 if not i % target과 같은 방법을 사용했는데 그럴 필요 없이 시작점을 target으로 하여 for i in range(target, n+1, target)을 선언하면 배수의 index만 출력 할.. 2021. 5. 31. [ 파이썬(python) ] 백준 2490 - 윷놀이 📍 백준 2490 - 윷놀이 백준 2490 - 윷놀이 ⚡️ 나의 풀이 윷짝들의 상태를 보고 도(A), 개(B), 걸(C), 윷(D), 모(E)를 판별하는 문제다. 윷짝들을 구성하는 값은 0 또는 1 임을 알 수 있다. 하지만 윷짝들이 주어질 때 0과 1의 순서가 뒤바뀔 수 있음을 인지하자. 나는 총 2가지 방법으로 풀었는데 주어지는 각각의 줄마다 합(sum)을 구해 출력을 구분했다. 0과 1의 개수를 파악하도록 count함수를 사용했다. 정답판정을 받고 다른 사람의 코드를 봤는데 1번의 sum은 입력을 받을 때 한 번에 선언해줘도 됐고, 2번의 count는 0과 1 둘 다 할 필요없이 둘 중에 하나만 해줘도 구분이 가능했다. # sum yut = [list(map(int, input().split())).. 2021. 5. 30. [ 파이썬(python) ] 백준 3009 - 네 번째 점 📍 백준 3009 - 네 번째 점 백준 3009 - 네 번째 점 ⚡️ 나의 풀이 수학적으로 어떻게 풀어야 할지 많은 고민을 했는데 결론적으로 각각의 입력 중에서 입력[0]만을 모아둔 리스트 column, 입력[1]만을 모아둔 리스트를 row라고 했을 때, 세 줄의 입력 중 입력[0]만을 생각했을 때 두 개의 입력[0]이 같은 값이면 나머지 한 개와 임시로 선언한 `a`값이 같은 값이 되어야 하고 반대로 입력[1]만을 생각했을 때 나머지 한개와 `b`도 같은 값이 되어야한다. 나는 이런방식으로 풀었다. defaultdict를 선언한다. 입력[0]번만 모아놓은 column 리스트와 입력[1]번만 모아놓은 row 리스트를 선언한다. value만큼 +=1 을 해준다. index가 1개인 column_dict와 .. 2021. 5. 30. [ 파이썬(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. [ 파이썬(python) ] 백준 2578 - 빙고 📍 백준 2578 - 빙고 백준 2578 - 빙고 ⚡️ 나의 풀이 구현력을 묻는 문제였는데, 21.5.17.부터 풀기 시작하다 중간에 막혀 boj_10703 유성 문제를 풀고 다시 푸니까 감이 잡혀서 정답 판정을 받은 문제다. 이 문제의 핵심 부분은 다음과 같다. 사회자가 부르는 수를 차례로 지워가면서 check 한다.(수가 불리면 0으로 초기화시킨다.) 빙고를 check 할 때 가로, 세로, 대각선 각각 check한다. 이때, 한 줄 혹은 한 열 혹은 한 대각선에서 0이 5개가 나오면 bingo+=1을 한다. bingo >= 3이면 해당 숫자가 몇 번째 cnt된 숫자인지 출력한다. 다음으로 가로, 세로, 대각선에서 bingo를 판단하는 방법을 살펴보자. 가로(row): count.('[0, 0, 0, .. 2021. 5. 28. 이전 1 ··· 7 8 9 10 11 12 13 ··· 23 다음