일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 비연결형 통신
- 전자 메일
- 사과 담기 게임
- 통나무 건너기
- 나동빈
- 구현
- 그리디 알고리즘
- 2 + 1 세일
- 파이썬
- 소가 길을 건너간 이유3
- JoCoding
- 동적 계획 알고리즘
- 문자 변환표
- 세탁소 사장 동혁
- 컴퓨터 네트워크
- 5와 6의 차이
- Pop
- 백준
- 한빛미디어
- 시저 암호화
- 욱제는 효도쟁이야!!
- Greedy
- 컬럼 암호화
- ZOAC 2
- 위치 암호화
- 거스름돈
- 키워드 암호화
- 대체 암호화
- DES 알고리즘
- 코딩 테스트
- Today
- Total
목록구현 (3)
주니어로서의 백 걸음, 개발자로서의 한 걸음

문제 해설: 왕실의 나이트 문제는 앞서 다루었던 '상하좌우' 문제와 유사하다. 나이트가 이동할 수 있는 경로를 하나씩 확인하여 이동하면 된다. 다만, 8 x 8 좌표 평면을 벗어나지 않도록 꼼꼼하게 검사하는 과정이 필요하다. 나이트는 2가지 경로로 움직일 수 있다고 했다. 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동하기 수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동하기 a = input() row = int(a[1]) column = int(ord(a[0])) - int(ord('a')) + 1 steps = [(2, -1), (2, 1), (-2, -1), (-2, 1), (1, -2), (1, 2), (-1, -2), (-1, 2)] result = 0 for step in steps: ne..

문제 해설: 이 문제는 시각을 1씩 증가시키면서 3이 하나라도 포함되어 있는지 확인하면 된다. 전체 시, 분, 초에 대한 경우의 수는 24 x 60 x 60이며 3중 반복문을 이용해 계산할 수 있다. 이러한 유형은 완전 탐색 유형으로 분류되기도 한다. 일반적으로 완전 탐색 알고리즘은 비효율적인 시간 복잡도를 가지고 있으므로 데이터 개수가 큰 경우에 정상적으로 동작하지 않을 수 있다. 그래서 일반적으로 알고리즘 문제를 풀 때는 확인(탐색) 해야 할 전체 데이터의 개수가 100만 개 이하일 때 완전 탐색을 사용하면 적절하다. 다음 소스코드에서는 매 시각을 문자열로 바꾼 다음 문자열에 '3'이 포함됐는지 검사한다. 다시 말해 00시 00분 00초부터 23시 59분 59초까지 1초씩 늘리며 시, 분, 초를 문자..

문제 해설: 이 문제의 연산 횟수는 이동 횟수에 비례하게 된다. 예를 들어 이동 횟수가 N번인 경우 시간 복잡도는 O(N)이다. 따라서 이 문제의 시간 복잡도는 매우 넉넉한 편이다. 해당 문제는 이동 방향에 따라서 dx, dy의 값을 올바르게 매치시켜야 한다. 예를 들어 이동 방향이 R이라면 dx값은 그대로이고 dy값은 1이 더해진다. 따라서 이동 방향에 맞춰서 dx, dy의 배열을 정렬해 준다. n = int(input()) plans = input().split() dx = [0, 0, -1, 1] dy = [-1, 1, 0, 0] move = ['L', 'R', 'U', 'D'] x, y = 1, 1 for plan in plans: for i in range(len(move)): if plan =..