구현 15

백준 17202번 핸드폰 번호 궁합 파이썬

https://www.acmicpc.net/problem/17202 17202번: 핸드폰 번호 궁합 어린시절 다들 한 번씩은 이름으로 궁합을 본 적이 있을 것이다. 이것과 비슷한 방식으로 중앙대학교에는 핸드폰 번호 궁합을 보는 것이 유행이라고 한다. 핸드폰 번호 궁합을 보기 위해서는 www.acmicpc.net 내 코드 x = list(input()) y = list(input()) temp = [] answer = '' for i in range(8): answer += x[i] + y[i] while len(answer) != 2: for i in range(len(answer) - 1): temp.append(str((int(answer[i]) + int(answer[i + 1])) % 10)) a..

BOJ/Python 2022.03.19

백준 2804번 크로스워드 만들기 파이썬

https://www.acmicpc.net/problem/2804 2804번: 크로스워드 만들기 A의 길이를 N, B의 길이를 M이라고 했을 때, 출력은 총 M줄이고, 각 줄에는 N개 문자가 있어야 한다. 문제 설명에 나온 것 같이 두 단어가 교차된 형태로 출력되어야 한다. 나머지 글자는 '.'로 출력 www.acmicpc.net 내 답안 A, B = input().split() N = len(A) M = len(B) matrix = [['.'] * N for _ in range(M)] for i in range(N): if A[i] in B: row = i col = B.index(A[i]) break for i in range(M): matrix[i][row] = B[i] for i in range(..

BOJ/Python 2022.03.09

백준 11723번 집합 파이썬

https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 내 답안 import sys input = sys.stdin.readline S = [0] * 21 for _ in range(int(input())): x = input().split() if x[0] == 'add': if S[int(x[1])] == 0: S[int(x[1])] = 1 else: continue elif x[0] == 'remove': if S[int(x[1])] == 1: S[int(x[1])] = 0 els..

BOJ/Python 2022.03.08

구현 (implementation) 실전 문제 - Python

예제 4 - 1 상하좌우 여행가 A는 NxN 크기의 정사각형 공간 위에 서 있다. 이 공간은 1x1 크기의 정사각형으로 나누어져 있다. 가장 왼쪽 위 좌표는 (1, 1)이며, 가장 오른쪽 아래 좌표는 (N, N)에 해당한다. 여행가 A는 상, 하, 좌, 우 방향으로 이동할 수 있으며, 시작 좌표는 항상 (1, 1)이다. 우리 앞에는 여행가 A가 이동할 계획이 적힌 계획서가 놓여있다. 계획서에는 하나의 줄에 띄어쓰기를 기준으로하여 L, R, U, D 중 하나의 문자가 반복적으로 적혀 있다. 각 문자의 의미는 다음과 같다. L : 왼쪽으로 한 칸 이동 R : 오른쪽으로 한 칸 이동 U : 위로 한 칸 이동 D : 아래로 한 칸 이동 * 이때 여행가 A가 NxN 크기의 정사각형 공간을 벗어나는 움직임은 무시된..

Algorithm 2022.03.04

구현 (implementation)

- 아이디어를 코드로 바꾸는 구현 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정을 구현이라고 한다. 흔히 문제 해결 분야에서 구현 유형의 문제는 '풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제'를 의미한다. 실제로 코딩 테스트에서 구현 문제를 보면 당황할 수 있다. 어떻게 풀면 될지 대략 감은 오는데, 막상 소스코드로 옮기려니 무엇부터 작성해야 할지 모를 수 있기 때문이다. 예를 들어 파이썬으로 코딩 테스트에 응시했는데, N 개의 원소가 들어 있는 리스트에서 R 개의 원소를 뽑아 한 줄로 세우는 모든 경우를 구해야 하는 문제를 만나면 어떻게 할까? 무작정 기능을 전부 작성할 수도 있다. 하지만 파이썬은 itertools 와 같은 표준 라이브러리로 쉽게 짜는 방법도 있다. 이는 언어의 문법을..

Algorithm 2022.03.03