본문 바로가기

코딩테스트166

[ 파이썬(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) ] 2차원 행렬에서 세로(column) 열만 추출하기 📍 2차원 행렬에서 세로(column) 열만 추출하기 1부터 25까지 순서대로 있는 5 * 5행렬에서 세로 (열(column))만 추출하는 방법을 알아보자. 총 3가지 방법으로 2중 반복문, lambda, zip함수를 사용했다. (더 좋은 방법이 있으면 댓글로 알려주세요!!) 결과는 모두 동일하다. # 1 ~ 25까지 배열 만들기 arr = [[0] * 5 for _ in range(5)] cnt = 0 for i in range(5): for j in range(5): cnt += 1 arr[i][j] = cnt # 2중 반복문 result = [[arr[j][i] for j in range(5)] for i in range(5)] # lambda 함수 result = [list(map(lambda x.. 2021. 5. 28.
[ 파이썬(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) ] 여러 줄의 입력을 한 줄로 출력 하고 싶을 때 📍 여러 줄의 입력을 한 줄로 출력하고 싶을 때 아래 보기와 같은 입력일때 1줄로 출력하려면 어떻게 할까? 리스트끼리는 덧셈이 가능한데, 1차원 리스트 + 1차원 리스트 = 1차원 리스트가 된다. ''' 5 10 7 16 2 4 22 8 17 13 3 18 1 6 25 12 19 23 14 21 11 24 9 20 15 ''' n = 5 num = [] for _ in range(n): num += list(map(int, input().split())) print(num) 👉🏽 [5, 10, 7, 16, 2, 4, 22, 8, 17, 13, 3, 18, 1, 6, 25, 12, 19, 23, 14, 21, 11, 24, 9, 20, 15] 2021. 5. 28.