알고리즘 105

[프로그래머스]부족한 금액 계산하기 - Python

문제 https://school.programmers.co.kr/learn/courses/30/lessons/82612 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 💡 List Comprehension 활용 List Comprehension을 사용해서 간단하게 필요한 List를 생성해서 계산해주었다. 💡sum() List Comprehension과 sum()을 활용하여 코드의 길이를 줄였음 ! List Comprehension이 궁금하다면? https://seokmimmmmmmmm.tistory.com/244 [Python]Li..

[프로그래머스]같은 숫자는 싫어 - Python

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 문제를 읽다보면 자연스럽게 스택을 생각하게 되는데, 파이썬에서는 List로 많은 자료구조를 커버할 수 있는 듯 ! 💡 arr.append() 파이썬에는 자바와 다르게 Array와 List의 구분이 있지 않다. 파이썬의 List에서는 append() 함수를 이용해서 List의 끝에 요소를 추가할 수 있다 ! 이 문제에서는 List를 Stack으로 사용하려고 함. Sta..

[프로그래머스]수박수박수박수박수박수? - Python

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12922 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 💡 문자열 * n 파이썬에서는 문자열도 곱하기 연산을 할 수 있다는 걸 활용하자 ! 💡홀수 짝수 나누기 홀수와 짝수의 경우를 나눠서 풀이해도 되지만, 최대한 코드를 짧게 짜고 싶어서 슬라이싱을 이용하였다. "수박"을 n만큼 곱해도 되지만 쓸데없는 연산을 줄이기 위해서 (int)(n/2)+1을 곱하였다. 코드 def solution(n): return ("수박" * (..

[프로그래머스]서울에서 김서방 찾기 - Python

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12919 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 💡 s.index() 괄호 안의 인자값이 문자열 s 안에 몇번째 인덱스에 있는지 반환하는 함수 값이 없으면 -1을 반환함 ! 💡str() 괄호 안의 값을 문자열로 만들어주는 함수 코드 def solution(seoul): return "김서방은 " + str(seoul.index("Kim")) + "에 있다"

[프로그래머스]문자열 다루기 기본 - Python

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12918 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제. isdigit() 함수를 알고 있으면 개쉬움! 💡 len() 문자열 String의 길이를 반환하는 함수 자바에서는.length() 💡s.isdigit() 변수 s가 숫자로 이루어져 있는지 판단하는 함수. 숫자이면 True를 반환함 코드 def solution(s): if len(s) == 4 or len(s) == 6: if s.isdigit(): return Tr..

[프로그래머스]문자열 내림차순으로 배치하기 - Python

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12917 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 💡 list() String을 List로 만들어주는 함수 💡sorted(arr, reverse = True) List인 arr을 정렬해주는 함수 reverse라는 인자값은 False가 디폴트(True인 경우 내림차순) 💡''.join() 작은 따옴표(') 안에 있는 값을 연결자로 해서 list를 String으로 결합해주는 함수 ! 그냥 List인 arr을 연결자 없이..

[프로그래머스]제일 작은 수 제거하기 - Python

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12935 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 💡 remove() arr.remove()처럼 파이썬은 다른 언어와 다르게 기본적으로 제공해주는 함수들이 엄청 많다 ! 항상 잘 이용하도록 ! (min(), max(), sum() 등등도 잘 이용하자 ㅎㅎㅎ) 코드 def solution(arr): if len(arr) == 1: arr = [-1] else: arr.remove(min(arr)) return arr

[프로그래머스]나누어 떨어지는 숫자 배열 - Python

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12910 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 💡 List Comprehension List Comprehension 내에서 if-else문, 함수 등 다양하게 사용할 수 있음 ! 최대한 간단하게 처리하기 위해서 사용 ! - List Comprehension이란? https://seokmimmmmmmmm.tistory.com/244 [Python]List Comprehension(리스트 컴프리헨션)이란? List..

[프로그래머스]히샤드 수 - Python

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12947 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 💡 List Comprehension 최대한 간단하게 처리하기 위해서 사용 ! - List Comprehension이란? https://seokmimmmmmmmm.tistory.com/244 [Python]List Comprehension(리스트 컴프리헨션)이란? List Comprehension이란? List Comprehension이란 - 다양한 조건을 사용해 I..

[프로그래머스]핸드폰 번호 가리기 - Python

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12948 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 💡 Slicing을 체화시키자 phone_number[-4:]는 phone_number의 뒤 네글자임 ! 💡 문자열 곱하기 파이썬에서는 문자열을 곱할 수 있음 ! 코드 def solution(phone_number): length = len(phone_number) temp = phone_number[-4:] return "*" * (length - 4) + temp

[프로그래머스]약수의 개수와 덧셈 - Python

문제 https://school.programmers.co.kr/learn/courses/30/lessons/77884 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 약수를 구하는 방법을 알고, 문제를 잘 읽어서 실수하지 않으면 쉽게 풀 수 있을 것 같다 💡 약수 구하는 방법 1. 반복문을 돌면서 나누어 떨어지는 수를 구한다 ! 2. 루트를 씌운 수와 루트를 씌운 수의 정수형이 같은지 확인한다 ! 3. 등등 코드 def solution(left, right): answer = 0 for i in range (left, right ..

[프로그래머스]내적 - Python

문제 https://school.programmers.co.kr/learn/courses/30/lessons/70128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 💡 List Comprehension 사용! 평범하게 풀어도 되지만, List Comprehension을 사용하면 한줄로 간단하게 끝낼 수 있다 ! - List Comprehension이란? https://seokmimmmmmmmm.tistory.com/244 [Python]List Comprehension(리스트 컴프리헨션)이란? List Comprehension이..

[프로그래머스]예산 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12982 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 그리디하게 생각하면 쉽게 풀 수 있을거임 ! 정렬해서 신청한 금액이 적은 부서부터 지원해주면 됨 주석은 뭐... 달게 없어서 그대로 올립니당 코드 // 코딩테스트 연습 - Summer/Winter Coding(~2018) - 예산 // https://school.programmers.co.kr/learn/courses/30/lessons/12982 package PR..

[프로그래머스]3진법 뒤집기 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/68935 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제이고 쉽게 풀었음. 그래서 안 올리려고 했는데, 다른 풀이들을 찾아보다가 완전 처음 알게된 사실이 있어서 글을 씁니당 ㅎㅎㅎ 일단 풀이는 %연산이랑 /연산을 잘 활용해서 3진법을 잘 만들고 sb.reverse()로 뒤집거나 뭐 등등 뒤집어서 다시 3진법으로 만들면 됨 ! 그런데 처음 알게된 사실 Integer.parseInt()에 인수가 하나 더 들어갈 수 있다는 것!..

[프로그래머스]푸드 파이트 대회 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/134240 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 문자열 관련 함수만 알고 있으면 쉽게 풀 수 있을 거임 ! StringBuilder로 접근해서 시간을 최대한 줄이려고 했음 ! 자세한건 주석으로 ! 코드 // 코딩테스트 연습 - 연습문제 - 푸드 파이트 대회 // https://school.programmers.co.kr/learn/courses/30/lessons/134240 package PROGRAMMERS...

[프로그래머스]두 개 뽑아서 더하기 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/68644 풀이 Level 1 문제임 엄청 쉬운 완전 탐색 문제인 듯?? 숫자 두개를 뽑아서 더하면 같은 결과가 나올 수 있는데 문제를 보면 같은 결과는 같다고 판단하는 것을 알 수 있음. 그래서 Set에다가 추가했는데, Set을 List로 바꿔서 배열을 선언 후에 차례대로 배열에 넣어줬음. 근데 List answerList = answerSet.stream().toList(); 이 문법(stream().toList())은 프로그래머스에서 아직 지원을 안하는 듯? 그래서 for (int temp : answerSet) { answerList.add(temp); } 이렇게 List에 넣어줬음! 자세..

[프로그래머스]소수 만들기 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12977 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제임 문제를 보자마자 dfs로 풀었는데 풀고 보니까 제모옥..은... 완전 탐색으로 하겠습니다... 근데 이제,, dfs를 곁들인! 이 되어 버렸네요? 자세한건 주석으로 ! 코드 // 코딩테스트 연습 - Summer/Winter Coding(~2018) - 소수 만들기 // https://school.programmers.co.kr/learn/courses/30/less..

[프로그래머스]햄버거 만들기 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제인데, 생각보다 시간초과에 걸려서 오래 걸림,,, ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ stack으로도 풀 수 있었을 것 같은데, 고집이 생겨서 어떻게든 String으로 풀려고 했음 String.replace("1231", "")은 1231을 다 한번에 바꾸는 거라 오답 String.replaceFirst("1231", "")은 시간초과나서 통과 못함 StringBuilder랑 St..

[백준]11724번 연결 요소의 개수 - Java

문제 https://www.acmicpc.net/problem/11724 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 풀이 쉬운 그래프 탐색 문제 ! 인접 리스트 배열로 풀든, 인접 행렬로 풀든 상관은 없을 것 같음! 방문하지 않은 노드가 있으면 dfs를 시작하고 그 안에서 연결이 되어있고 방문하지 않은 애들이면 탐색을 시작함 자세한건 주석으로! 코드 // 11724번 연결 요소의 개수 // https://www.acmicpc.net/proble..

[백준]5567번 결혼식 - Java

문제 https://www.acmicpc.net/problem/5567 5567번: 결혼식 예제 1의 경우 2와 3은 상근이의 친구이다. 또, 3과 4는 친구이기 때문에, 4는 상근이의 친구의 친구이다. 5와 6은 친구도 아니고, 친구의 친구도 아니다. 따라서 2, 3, 4 3명의 친구를 결혼식에 초대 www.acmicpc.net 풀이 쉬운 문제인듯? 걍 문제대로 풀면 됨 나는 그냥 문제대로 풀었지만, dfs로 depth == 2 면 탈출하게 해서 풀어도 될 듯??? 자세한건 주석으로! 코드 // 5567번 결혼식 // https://www.acmicpc.net/problem/5567 package BAEKJOON; import java.io.BufferedReader; import java.io.IOE..