Algorithm/Programmers 7

[Programmers / Level3] 불량 사용자 (JavaScript)

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr banned_id의 요소 패턴에 맞춰 user_id 중 매칭되는 경우의 수를 구하는 문제.banned_id와 user_id 요소 서로 길이가 같아야 함.순서 다른 것도 중복 처리, 중복 제거해야 함.dfs와 백트래킹을 이용하면 되는 문제. 📌 접근 방법1. banned_id를 돌면서 user_id를 방문처리해가면서 banned_id 요소와 user_id 요소 비교(비교는 check 함수를 통해 진행)2. check 함수에서 예외 케이스 boolean으로 처리. (각 두 요소의 길이가 다를 때, * 제외한 나머지 문제 다를 때)3. true인 user_id 요소(매..

[Programmers / Level2] 수식 최대화 (JavaScript)

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 연산자 우선순위를 변경해가며 최대값을 구하는 문제.우선순위 자유롭게 변경 가능.단, 같은 순위에 여러 연산자가 들어갈 수 없음.📌 접근 방법1. 주어진 문자열을 하나하나 쪼개서 숫자와 연산자를 배열로 저장2. 총 6가지의 연산자 우선순위 경우의 수를 돌면서 연산 수행3. 구한 값들 중 최대값 구하기💟 전체 코드// 연산자 기준 분리 함수function divideExpression(str) { let dividedArr = []; let s = ""; for (let i = 0; i { const currentDividedes = [...divi..

[프로그래머스 1단계] 크기가 작은 부분 문자열

https://school.programmers.co.kr/learn/courses/30/lessons/147355 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr def solution(t, p): answer = 0 subStr = [t[i: i+len(p)] for i in range(0, len(t)-len(p)+1)] for j in subStr : if(int(j)  파이썬 슬라이스와 List Comprehensions를 활용하였다.List Comprehensions을 사용하니 코드가 간결하다.

[프로그래머스 1단계] 카드 뭉치

https://school.programmers.co.kr/learn/courses/30/lessons/159994 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr def solution(cards1, cards2, goal): answer = '' inCards1Count = 0 inCards2Count = 0 subGoal = [] for i in range(0, len(goal)): if(goal[i] in cards1) : subGoal.append(cards1[inCards1Count]) ..

[프로그래머스 1단계] 가장 가까운 글자

https://school.programmers.co.kr/learn/courses/30/lessons/142086 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr def solution(s): answer = [] checkArr = '' for i in s : if i in checkArr : a = checkArr.rfind(i); checkArr += i; b = checkArr.rfind(i); num = b - a;..

[프로그래머스 1단계] 푸드 파이트 대회

https://school.programmers.co.kr/learn/courses/30/lessons/134240 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr def solution(food): answer = '' subAnswer = '' for i in range(1, len(food)) : eatingCount = food[i] // 2; if(eatingCount > 0): answer += str(i) * eatingCount subAnswer += str(i) *..

[프로그래머스 1단계] - 추억 점수

https://school.programmers.co.kr/learn/courses/30/lessons/176963 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr def solution(name, yearning, photo): answer = [] for i in photo : sum = 0 for j in i : if j in name : valueIndex = name.index(j); sum += yearning[valueIndex]; ..