백준 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
프로그래머스 | 2021 KAKAO BLIND RECRUITMENT | 신규 아이디 추천 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(new_id): # 1단계: 소문자로 치환 new_id = new_id.lower() # 2단계: 특수문자 제거 for i in new_id: if i in '~!@#$%^&*()=+[{]}:?,/': new_id = new_id.replace(i, '') # 3단계 ..., ..을 .으로 치환 while '..' in new_id: new_id = new_id.replace('..', '.') # 4단계: 처음 또는 끝에 위치한 . 제거 new_id = new_id.strip('..
프로그래머스 | 2022 KAKAO TECH INTERNSHIP | 성격 유형 검사 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제가 길기 때문에 접근법과 풀이과정에 대한 설명만 남깁니다. 코드 def solution(survey, choices): n1, n2, n3, n4 = {'R':0, 'T':0}, {'C':0, 'F':0}, {'J':0, 'M':0}, {'A':0, 'N':0} for i in range(len(survey)): if survey[i] == 'RT' or survey[i] =='TR': if choices[i] < 4: # 비동의 관련 선택지 n1[survey[i][0]] += 4 - choices[i] ..
프로그래머스 | 달리기 경주 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 시도한 코드 def solution(players, callings): for i in callings: idx = players.index(i) players[idx-1], players[idx] = players[idx], players[idx-1] return players 그냥 swap 하면 쉽게 풀리는 문제 아닌가?라고 덤벼들었다가 시간 초과를 만나게 되었다. calling의 최대 길이가 1,000,000이고, players의 최대 길이가 50,000이기 때문에 idx 하나를 구하기 위해선 1,..
백준 4796 | 그리디 | 캠핑 [파이썬 python]
·
Algorithm/백준
4796번: 캠핑 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다. www.acmicpc.net 코드 i = 1 while True: l, p, v = map(int, input().split()) if p==0 and l==0 and v==0: # 0, 0, 0이 입력되면 반복문 종료 break camping = (l * (v // p)) + min((v % p), l) # 캠핑장을 사용할 수 있는 최대 일수 print('Case {}:'.format(i), camping) i += 1 쉬운 문제인 줄 알고 달려들었다가 '틀렸습니다!'를 계속 만나게..