목록코딩 테스트 (187)
미소를뿌리는감자의 코딩
https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 1. 접근 방법 컨베이어의 위 아래로 나누어서, 구분을 해주었다. robots라는 list를 만들어 주어서, 로봇의 위치(인덱스 값)을 저장해주었다. 이를 통해 로봇이 컨베이어 벨트의 끝에 도달했는지 혹은 앞에 다른 로봇이 있는지 알아볼 수 있었다. 이후 함수는 step1, step2, step3로 나누어서 문제에 적혀있는대로 코드를 작성해 주었다. + remove_indic..
https://www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 1. 접근 방법 - male : 해당 수의 배수에 대해서 스위치를 키거나 끔 - female : 특정 스위치에 대해서 대칭일 때까지 스위치를 누름 male의 경우 직관적으로 접근해주면 되며, female의 경우 2개의 pointer (l, r 변수)를 이용해서 하나씩 넓혀나간다. 만약 값이 같다면 스위치를 바꾸어주고, 다르다면 while 문을 탈출해주면 된다. 2. 코드 def male(n)..
https://leetcode.com/problems/balanced-binary-tree/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1. 접근 방법 balanced가 되었는지 확인하기 위해서는, 해당 노드에서 abs(왼쪽 노드의 최대 깊이 - 오른쪽 노드의 최대 깊이) < 2 이어야 한다. 재귀적으로 밑에 노드들도 다 확인하기 때문에 abs(왼쪽 노드..
https://leetcode.com/problems/diameter-of-binary-tree/description/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1. 접근 방법 트리의 가장 긴 지름을 구하는 문제이다. 우선 self.max_diameter를 선언을 해주어, 최대 length마다 값을 바꾸도록 하였다. 이후 노드를 기준으로, 왼쪽 노드의 ..