목록Algorithm (160)
alpyrithm_알파이리즘
14490 백대열 https://www.acmicpc.net/problem/14490 14490번: 백대열 n과 m이 :을 사이에 두고 주어진다. (1
1213 팰린드롬 만들기 https://www.acmicpc.net/problem/1213
1543 문서 검색 https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한� www.acmicpc.net 문제 풀기 전 공부할 것 : 문자열, 브루트포스 알고리즘 풀이 1 doc와 word에 각각 입력을 받는다. res를 0으로 초기화하고 for문으로 doc 첫 단어부터 반복한다. 만약에 word가 doc에 들어있으면 cnt에 1을 더하고 idx를 현재 인덱스 + 단어 길이로 하여 반복문에서 그 다음 인덱스로 넘어갈 수 있도록 한다. doc = input() word = input()..
4999 아! https://www.acmicpc.net/problem/4999 4999번: 아! 입력은 두 줄로 이루어져 있다. 첫째 줄은 재환이가 가장 길게 낼 수 있는 "aaah"이다. 둘째 줄은 의사가 듣기를 원하는 "aah"이다. 두 문자열은 모두 a와 h로만 이루어져 있다. a의 개수는 0보다 크거 www.acmicpc.net 문제 풀기 전 공부할 것 : 문자열 풀이 재환과 의사 모두 항상 'h'를 하나 포함하고 있고 그 외의 문자는 'a'이다. 따라서 재환과 의사의 입력값을 받고 각각의 길이를 비교해서 재환이 같거나 크다면 'go'를 출력하고 작다면 'no'를 출력한다. jh = input() doctor = input() if len(jh) >= len(doctor): print('go')..
11365 !밀비 급일 https://www.acmicpc.net/problem/11365 11365번: !밀비 급일 당신은 길을 가다가 이상한 쪽지를 발견했다. 그 쪽지에는 암호가 적혀 있었는데, 똑똑한 당신은 암호가 뒤집으면 해독된다는 것을 발견했다. 이 암호를 해독하는 프로그램을 작성하시오. www.acmicpc.net 문제 풀기 전 공부할 것 : 구현, 문자열 풀이 while문으로 END가 입력될 때까지 계속 반복한다. 입력받고 뒤집어 출력한다. import sys input = sys.stdin.readline while True: sentence = input().rstrip() if sentence == 'END': break print(sentence[::-1])
5567 결혼식 https://www.acmicpc.net/problem/5567 5567번: 결혼식 2와 3은 상근이의 친구이다. 또, 3과 4는 친구이기 때문에, 4는 상근이의 친구의 친구이다. 5와 6은 친구도 아니고, 친구의 친구도 아니다. 따라서 2,3,4 3명의 친구를 결혼식에 초대한다. www.acmicpc.net 문제 풀기 전 공부할 것 : 구현, 그래프 탐색 풀이 상근이의 친구와, 친구의 친구를 초대하는 것이므로 dfs로 깊이가 2인 것까지 탐색한다. 상근이와 동기들의 친구 관계를 friends에 map으로 정리한다. dfs 함수를 만들고 깊이가 2까지 friend set에 넣어준다. 이미 확인했는지 여부를 위해 check 리스트를 만들고 상근이 친구 관계부터 dfs를 시작한다. impo..
1926 그림 https://www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로�� www.acmicpc.net 문제 풀기 전 공부할 것 : 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색 풀이 bfs로 해결하기 paint에 도화지 정보를 입력받는다. bfs 함수를 만들어 그림의 넓이를 구한다. 이미 확인했는지 아닌지를 위해 check 리스트를 만든다. paint 모든 곳을 돌며 그림인지 아닌지를 확인하고 그림이면 그림의 넓이를 구한다. import sys input = sys.stdin.rea..
1743 음식물 피하기 https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ 10,000)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진� www.acmicpc.net 문제 풀기 전 공부할 것 : 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색 풀이 1 음식물을 waste에 입력받는다. idx 리스트에 음식물 위치를 저장한다. check 리스트를 만들어 이미 뭉친 음식물인지 아닌지 판별한다. idx 리스트가 비어질 때까지 while문을 반복한다. 음식물 위치를 pop 해서 만약에 이미 뭉친 음..