프로그래머스 | 공원 산책 [파이썬 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]..
프로그래머스 | 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,..
프로그래머스 | 완주하지 못한 선수 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 시도한 코드 def solution(participant, completion): for i in completion: if i in participant: participant.remove(i) return ''.join(participant) 어렵지 않은 문제이기 때문에 쉽게 코드를 작성할 수 있었다. 하지만 정확성 테스트는 모두 통과하지만 효율성 테스트는 시간 초과로 실패하였다. 내가 작성한 코드에서 시간을 많이 소요되는 부분을 생각해 보니 for문과 remove임을 알 수 있었다. completi..
프로그래머스 | 숫자 짝꿍 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 from collections import Counter def solution(X, Y): x = Counter(X) y = Counter(Y) answer = '' for i in range(10): answer += str(i) * (min(x[str(i)], y[str(i)])) if answer == '': return '-1' answer = ''.join(sorted(answer, reverse=True)) if answer[0] == '0': return '0' else: return an..