🥕 [ 백준 2138 ] 전구와 스위치 문제 링크 url : https://www.acmicpc.net/problem/2138 2138번: 전구와 스위치 N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 < i < N)번 스위치를 누르면 i-1, i, i+1의 세 개의 전구의 상태가 바뀐다. 즉, 꺼져 www.acmicpc.net 🍒 문제 분석 N개의 전구가 있다. i번 스위치를 누르면 i-1, i, i+1 세개 전구에 불이 들어오거나 또는 꺼진다. 단, 1번째 스위치를 누르면 1과 2만 작동하며, 마찬가지로 마지막 N번째 스위치를 누르면 N-1과 N만 작동한다. 최소한의 동작으로 전구를 주어진 상황에서 목표하는 상황까지 도달한다고 할..
파이썬
🥕 [ 백준 1600 ] 말이 되고픈 원숭이 문제 링크 url : https://www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 🍒 문제 분석 원숭이는 체스의 나이트와 같은 이동 방식을 가진다. 단, K번만 그럴 수 있고, 그 외에는 인접한 네칸 으로만 움직일 수 있다.( 위, 아래, 왼쪽, 오른쪽 ) 원숭이가 최소한의 동작으로 시작지점에서 도착지점 까지 갈 수 있는 방법을 알아내는 프로그램을 작성해보는 문제이다. 최소한의 동작으로 목적지를 ..
[최대 공약 문자열] def solution(s1, s2): if len(s1)>=len(s2): # word1에 더 긴 문자열 저장 word1, word2 = s1,s2 else: word1, word2 = s2,s1 s3 = "" # 찾고자 하는 s3 초기화 for i in range(len(word2),0,-1): # word2 전체 문자열 부터 해서 뒤부터 한칸 씩 줄여가며 word1의 시작 문자열인지 체크 if word1.startswith(word2[:i]): s3 = word2[:i] break return s3 startswith 함수가 뭔지 알 수 있었다. ( 쉽게 검사가 되더라 ) endswith 라는 함수도 있다. 완전한 코드는 아니다. 왜냐면 구한 s3가 word1과 word2에 대..
[find] find( 찾을 문자, 찾기 시작하는 위치 ) >>> s = 'abcde fghijklmnj' >>> s.find('j') 10 >>> s.find('j',10) 10 >>> s.find('j',11) 15 >>> s.find('z') -1 [startswith] startswith( "문자" 로 시작하는지, 시작지점 ) >>> s = 'abcde fghijklmnj' >>> s.startswith('a') True >>> s.startswith('a',1) False >>> s.startswith('c',2) True [endswith] endwith('문자'로 끝나는지, 탐색을 시작하는 인덱스, 탐색이 끝나는 인덱스) >>> s = 'abcde fghijklmnj' >>> s.endswi..