분류 전체보기
-
[2일차](문제 번호 : 2738, 행렬 덧셈) 도전백준 문제 풀이 2023. 7. 19. 21:55
1. 문제 요약 N*M크기의 두 행렬 A와 B가 주어졌을 때, 두 행렬을 더하는 프로그램을 작성하는 것이 목표이다. 예시. 입력 3 3 1 1 1 2 2 2 0 1 0 3 3 3 4 4 4 5 5 100 출력 4 4 4 6 6 6 5 6 100 2. 풀어보기 리스트 안에 리스트를 만들어 2차원으로 배열하면 될 것 같았다. 예를 들면, 1 2 3 4 5 6 은 [[1,2], [3,4], [5,6]]으로 나타내는 것이다. 따라서 코드는 다음과 같이 작성했다. N, M = map(int, input().split()) A = [[] for _ in range(N)] B = [[] for _ in range(N)] C = [[] for _ in range(N)] for i in range(N): A[i] = l..
-
[1일차](문제 번호 : 1316, 그룹 단어 체커) 도전백준 문제 풀이 2023. 7. 18. 02:08
1. 문제 요약 첫 째줄에 정수 N을 입력받는다. 그 다음 줄부터 단어를 한 줄에 하나씩 총 N번 제공한다. 그 단어들중 그룹 단어가 몇 개인지 출력하면 된다. ( 그룹 단어란 aaabbbc와 같이 같은 알파벳이 떨어지지않은 단어이다. 반례로는 aabbaa가 있다.) 예시. 입력 5 ab aa aca ba bb 출력 4 2. 풀어보기 가장 먼저 생각이든 방법은 단어를 입력받아 단어를 복제해놓는다. 그리고 한 글자씩 앞에서부터 불러온다. 그리고 그 글자를 하나 삭제시킨다. 그 후, 복제되누단어를 뒤집고 불러온 글자를 하나 삭제시킨다. 그 후, 단어를 다시 뒤집어 복제된 단어와 단어가 일치하는 지 알아본다. 예를 들어 단어가 word = aabccbaabb라고 하자. 복제본 단어는 word2 = aabccb..
-
[0일차](문제 번호 : 2941, 크로아티아 알파벳) 도전백준 문제 풀이 2023. 7. 17. 04:12
바로 풀이에 들어가기에 앞서, 0일 차로써 이 문제를 푸는 이유는 풀고 있던 문제이기 때문에, 1일 차로써 선정하기 별로였기에 이 문제를 0일 차 문제로써 선정했다. 1. 문제 요약 위 표에 나와있는 것처럼 크로아티아 알파벳을 일반적으로 입력가능한 알파벳으로 변경해 그 내용을 저장했다. 이때, 입력된 문장은 총 몇 글자인지 세는 것이 목적이다. (단, 위에 없는 알파벳은 하나로 세며, nj를 n과 j로 보는 것이 아닌 무조건 nj로 (1개로) 센다.) 예시. 입력 : ljes=njak 출력: 6 2. 풀어보기 이 문제의 핵심은 크로아티아 알파벳은 끝이 - 또는 = 또는 j로 끝난다는 것이다. 따라서, 문장을 입력받은 후, 문장을 뒤집고, 그 뒤집은 문장을 앞에서부터 한 글자씩 읽는다. 그 글자가 - 또는..