프로그래머스 | 체육복 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(n, lost, reserve): # 정렬 lost.sort() reserve.sort() # lost, reserve에 공통으로 있는 요소 제거 for i in reserve[:]: if i in lost: reserve.remove(i) lost.remove(i) # 체육복 빌려주기(나의 앞 번호부터 확인) for i in reserve: if i-1 in lost: lost.remove(i-1) elif i+1 in lost: lost.remove(i+1) return n-l..
프로그래머스 | 문자열 나누기 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(s): answer = 0 # 분해한 문자열의 개수 isx, isnotx = 0, 0 # x와 같은 글자 수, 다른 글자 수 for i in range(len(s)): if isx == isnotx: # 두 횟수가 같으면 분리(answer+1) answer += 1 x = s[i] isx, isnotx = 0, 0 if s[i] == x: isx += 1 else: isnotx += 1 return answer 문자열 s의 첫 글자를 x라 할 때, 차례대로 문자를 읽어가며 x와 같..
프로그래머스 | 대충 만든 자판 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 다음과 같이 keymap과 targets이 주어질 때 각 targets을 만들기 위해 키를 누르는 최소 횟수를 구해야 한다. 첫 번째 예시를 보면 targets=['ABCD', 'AABB']을 만들기 위해서는 keymap=['ABACD', 'BCEFD']만을 사용해야 한다. ABACD를 순서대로 누를 수 있는 키 하나와, BCEFD를 누를 수 있는 키 하나로 총 2개의 가 있는 것이다. 'ABACD'는 한 번 누르면 A, 2번 누르면 B, 3번 누르면 A, 4번 누르면 C.. 와 같이 입력이 가능한 것이다. ..
프로그래머스 | 공원 산책 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(park, routes): # 시작점('S') 찾기 x, y = 0, 0 for row in range(len(park)): for col in range(len(park[row])): if park[row][col] == 'S': # 시작 지점 'S' x, y = row, col # 이동 방향 정의 op = {'N':(-1, 0), 'S':(1, 0), 'W':(0, -1), 'E':(0, 1)} # 이동 for i in routes: dx, dy = op[i.split()[0]..
백준 11724 | DFS / BFS | 연결 요소의 개수 [파이썬 python]
·
Algorithm/백준
11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 문제에서 연결 요소의 개수를 구하라고 했지만, 연결 요소의 뜻을 몰라서 헤매고 있었다. 하지만 주어진 예제 입력을 직접 손으로 그려보니 연결 요소가 무엇인지 알 수 있었다! 1번 예제 같은 경우는 직접 그래프를 그려보면 다음과 같은 모양으로 그려진다. 125 / 34 형태로, 2개의 그래프이자 2개의 영역으로 나눠진 것으로 볼 수 있다. 2번 예제 같은 경우는 직접 그래프를 그려보면 다음과 같은 모양으..
백준 2810 | 그리디 | 컵홀더 [파이썬 python]
·
Algorithm/백준
2810번: 컵홀더 첫째 줄에 좌석의 수 N이 주어진다. (1 ≤ N ≤ 50) 둘째 줄에는 좌석의 정보가 주어진다. www.acmicpc.net 코드 n = int(input()) # 좌석 수 seat = input() # 좌석 정보 couple = seat.count('LL') # 커플석의 개수 if couple