본문 바로가기
반응형

알고리즘38

[알고리즘/백준] 1331번 나이트 투어 Python 파이썬 이번 문제는 체스의 룰을 알고 확인할 조건들과 규칙을 찾아낼 수 있으면 풀 수 있는 문제이다. 주의있게 봐야할 점이 1. 나이트의 움직임 규칙 2. 모든 지점을 한번씩만 들렸는지 3. 마지막 지점에서 처음 지점으로 갈 수 있는지 총 3가지 조건이다. 1. 경우 나이트 움직임이 x, y 좌표 값으로 변환했을 때 현재 움직임 nowx, nowy 다음 움직임 prex, prey 라 할 때 abs(nowx-prex) == 1 and abs(nowy-prey) == 2) 이거나 (abs(nowx-prex) == 2 and abs(nowy-prey) == 1 조건에 충족하는지 확인해야한다. 만약이 이 경우를 제외하고는 나이트 이동 규칙을 지키지 않은 것이다. 2. chass_map 이라는 이차원 배열 만들어서 지나.. 2023. 2. 23.
[알고리즘/백준] 2684번 동전 게임 Python 파이썬 이번 문제에는 단순한 문제인데 앞에서 순열 조합 문제를 풀어서 그런지 어렵게 생각하다가 시간이 많이 소요된 문제이다. 하다가 뭔가 아닌 것 같아서 다른 분의 코드를 참고했고 문제를 깨달을 수 있었다. 각 테케가 몇 번 나왔는지 출력해주는 문제로 입력한 문자에서 처음부터 끝까지 세 문자씩 묶어서 검사해주면 되는 문제였다. 어쩌다가 사고방식이 순열 조합으로 흘러가서 뻘짓을 하고 있었는지...;; 이래서 문제를 끝까지 잘 읽어봐야하는 것 같다. 다음과 같은 코드를 통해 통과하였다. import sys input = sys.stdin.readline P = int(input()) for i in range(P): check = {"TTT": 0, "TTH": 0, "THT": 0, "THH": 0, "HTT":.. 2023. 2. 21.
[알고리즘/백준] 2511번 카드 놀이 Python 파이썬 이번 문제는 문제를 꼼꼼히 읽어보면 어렵지 않은 단순 노가다 문제이다. 카드 놀이할 때 누가 승자인가를 출력해주는 문제로 승리 조건만 잘 읽어본다면 어렵지 않다. 빼먹지 말아야하는 점은 무승부일 때 완전 무승부인지 아닌지 잘 판단해서 출력해주는 것이다. 다음과 같은 코드를 통해 통과하였다. import sys input = sys.stdin.readline a_card = list(map(int,input().split())) b_card = list(map(int,input().split())) a_score = 0 b_socre = 0 last_win = '0' for i in range(len(a_card)): if a_card[i] > b_card[i]: a_score += 3 last_win =.. 2023. 2. 21.
[알고리즘/백준] 2798번 블랙잭 Python 파이썬 이번 문제는 생각을 조금 해야하는 문제이다. 카드 세장을 뽑아서 최대한 M에 가까운 숫자를 만드는 것이 관건이다. 처음에 생각한 방법은 일일이 다 검사해서 확인해주는 방법이다. 삼중 반복문을 이용했고 큰 값을 넣어주었다. (모든 경우의 수를 다 확인해야하는 완전 탐색 문제이다.) 다음과 같은 코드를 통해 통과하였다. import sys input = sys.stdin.readline N, M = map(int, input().split()) cards = list(map(int, input().split())) answer = 0 for i in range(N): for j in range(i+1, N): for k in range(j+1, N): num = cards[i]+cards[j]+cards[k.. 2023. 2. 21.
반응형