취업 및 이직 준비/코딩테스트 준비 26

프로그래머스 코딩 기초 트레이닝 Python Day16 ~ Day25

DAY16 문자열 대문자로 바꾸기def solution(myString): return myString.upper()테스트:print(solution("aBcDeFg"))# "ABCDEFG"print(solution("AAA"))# "AAA"설명:upper() 메서드는 문자열의 모든 알파벳을 대문자로 변환이미 대문자인 경우는 그대로 유지됨 소문자로 바꾸기def solution(myString): return myString.lower()테스트:print(solution("aBcDeFg"))# "abcdefg"print(solution("aaa"))# "aaa"설명:lower() 메서드는 문자열의 모든 알파벳을 소문자로 변환이미 소문자인 경우는 그대로 유지됨 배열에서 문자열 대소문자 변환하기def ..

프로그래머스 코딩 기초 트레이닝 Python Day6 ~ Day15출처

DAY6 조건문 반복문 마지막 두 원소def solution(num_list):# 마지막 원소와 그 전 원소 비교 if num_list[-1] > num_list[-2]:# 마지막 원소가 더 크면 그 차이를 추가 num_list.append(num_list[-1] - num_list[-2]) else:# 마지막 원소가 더 크지 않으면 마지막 원소의 두 배를 추가 num_list.append(num_list[-1] * 2) return num_list설명:리스트의 마지막 원소와 그 전 원소 비교:num_list[-1]은 마지막 원소num_list[-2]는 마지막에서 두 번째 원소조건에 따른 값 추가:마지막 원소가 더 크면: 두 원소의 차이를 추가마지막 원소가 더 크..

프로그래머스 코딩 기초 트레이닝 Python Day1 ~ Day5

DAY 1문자열 출력str = input()print(str) a, b 출력a, b = map(int, input().strip().split(' '))print("a =", a)print("b =", b)a, b = map(int, input().strip().split(' '))input(): 사용자로부터 문자열을 입력받습니다.strip(): 입력된 문자열의 앞뒤 공백을 제거합니다.split(' '): 문자열을 공백을 기준으로 나누어 리스트로 만듭니다map(int, ...): 리스트의 각 문자열을 정수로 변환합니다a, b = ...: 변환된 두 정수를 변수 a와 b에 각각 할당합니다예시: 입력이 "4 5"인 경우"4 5" (입력) → "4 5" (strip) → ["4", "5"] (split) → ..

코딩테스트 - 파이썬 - 상자 채우기

def solution(n): if n == 0: return 0 box_5 = n // 5 # 5kg 무게의 상자 개수를 최대한 많이 채우는 경우를 계산하여 box_5에 저장 while box_5 >= 0: # box_5 값이 0 이상인 동안 반복 remaining = n - (5 * box_5) # 남은 무게를 계산하여 remaining에 저장 if remaining % 3 == 0: # 남은 무게가 3의 배수인 경우, 3kg 무게의 상자로 채울 수 있음 box_3 = remaining // 3 # 3kg 무게의 상자 개수를 계산하여 box_3에 저장 return box_5 + box_3 # 5kg과 3kg 무게의 상자 개수를 합하여 반환 box_5 -= 1 # 가능한 경우가 없는 경우, box_5 ..

코딩테스트 준비 - 팰린드롬

팰린드롬(palindrome)은 앞에서부터 읽어도 뒤에서부터 읽어도 동일한 문자열 또는 숫자열을 말합니다. 예를 들면 "level", "radar", "madam" 등이 팰린드롬의 예시입니다. 팰린드롬은 문자열뿐만 아니라 숫자나 기호 등 다양한 형태로 나타날 수 있습니다. def solution(n, m): count = 0 # 팰린드롬 숫자의 개수를 저장하는 변수 for num in range(n, m + 1): # n부터 m까지의 범위에서 숫자를 하나씩 확인 num_str = str(num) # 숫자를 문자열로 변환하여 각 자리수를 확인하기 위한 변수 is_palindrome = True # 현재 숫자가 팰린드롬인지 여부를 저장하는 변수 # 숫자의 각 자리수를 확인하여 팰린드롬인지 여부를 판단 for..

파이썬 코딩테스트 - 괄호짝 맞추기 - 참고용

def check_matching_brackets(s): stack = [] # 스택 초기화 # 닫힌 괄호를 키(key)로, 여는 괄호를 값(value)으로 하는 딕셔너리 brackets = {')': '(', '}': '{', ']': '['} for char in s: if char in brackets.values(): # 여는 괄호일 경우 스택에 push stack.append(char) elif char in brackets.keys(): # 닫는 괄호일 경우 if not stack or brackets[char] != stack.pop(): # 스택이 비어있거나, 짝이 맞지 않는 경우 False 반환 return False else: # 괄호 이외의 문자는 무시 continue # 스택에 남아..

파이썬 - 추첨결과 - 코딩테스트 - 참고용

if __name__ == "__main__": # 입력 받기 n = int(input()) # 당첨시킬 응모권의 수 numbers = list(map(int, input().split())) # 추첨함 속 응모권에 적혀 있는 회원번호 리스트 # 중복 제거를 위해 set 사용 unique_numbers = set(numbers) # 추첨 대상으로 인정할 회원번호들을 담을 리스트 winners = [] # 추첨 대상으로 인정된 회원번호들을 winners 리스트에 추가 for num in unique_numbers: if numbers.count(num)

자바스크립트 코딩 문제 결과 참고용

코드는 입력 문자열을 가져와 대괄호 안의 참조를 번호가 매겨진 참조로 바꾸고 끝에 번호가 매겨진 참조 목록을 추가하여 형식을 지정하는 JavaScript 함수 'formatThesis' function formatThesis(input) { let references = new Map(); let referenceCounter = 1; // 참고문헌 번호를 위한 카운터 초기화 let revisedInput = input.replace(/\[(.*?)\]/g, (match, titles) => { // 대괄호 안의 텍스트를 참고문헌 번호로 대체 let titleList = titles.split(",").map(title => title.trim()); // 쉼표로 구분된 제목들을 분리하고 공백 제거 le..

프로그래머스 - 타겟넘버 - 자바 - 코딩테스트연습

class Solution { int answer = 0; // 목표값과 일치하는 경우의 수를 저장할 변수 public int solution(int[] numbers, int target) { dfs(numbers, 0, target, 0); // 깊이 우선 탐색(DFS) 함수 호출 return answer; // 결과 반환 } // 깊이 우선 탐색 함수 public void dfs(int[] numbers, int depth, int target, int sum){ if(depth == numbers.length){ // 배열의 모든 요소를 다 탐색한 경우 if(target == sum) answer++; // 목표값과 일치하는 경우 answer 변수 증가 } else { dfs(numbers, de..

프로그래머스 - 같은 숫자는 싫어 - 자바 - 코딩테스트 준비

import java.util.*; public class Solution { public int[] solution(int []arr) { int[] answer = {}; // 크기가 얼마나 있는지 모르니 가변인 어레이리스트를 사용 ArrayList arrl = new ArrayList(); // 배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수 int num = -1; // 영햐을 끼치지 않는 숫자 for(int i=0; i< arr.length ; i++){ if(arr[i] != num){ // 처음은 무조건 삽입 왜냐면 관련없는 -1 arrl.add(arr[i]); num = arr[i]; // 배열의 변수를 비교하기 위해 num에 arr을 넣는다. } } // ans..

프로그래머스 - 완주하지 못한 선수 - 자바 - 코딩테스트 준비

✔ HashMapimport java.util.*; class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; Map map = new HashMap(); for (String p : participant) { map.put(p, map.getOrDefault(p, 0) +1); } for (String c : completion){ map.put(c, map.get(c) -1); } for (String key : map.keySet()){ if(map.get(key) != 0){ answer = key; break; } } return answer; } }1. Map을 사용..

프로그래머스 - (폰켓몬) - 자바 - 코딩테스트연습

import java.util.*; class Solution { public int solution(int[] nums) { int answer = 0; int min = nums.length/2; HashSet set = new HashSet(); //중복을 없에기 위해 set 사용 // Set은 객체를 중복해서 저장할 수 없고 하나의 null 값만 저장할 수 있다. for (int n : nums){ set.add(n); } // HashSet의 크기는 size()를 이용 if(min >= set.size()) answer = set.size(); else answer = min; // 크기만 나오면 되기 때문에 그냥 사이즈를 계산 return answer; } }HashSet : 중복을 없에기 위..

프로그래머스 자바 (옹알이1) 코딩테스트 문제

class Solution { public int solution(String[] babbling) { int answer = 0; for(int i=0; i< babbling.length; i++){ babbling[i] = babbling[i].replaceFirst("aya", "0"); babbling[i] = babbling[i].replaceFirst("ye", "0"); babbling[i] = babbling[i].replaceFirst("woo", "0"); babbling[i] = babbling[i].replaceFirst("ma", "0"); // 처음 부분을 포함한걸 전부 없에라 replace 할경우 다 없어지기 때문에 first사용 babbling[i] = babbling[i]...

프로그래머스 자바 (n 의 배수 고르기) 코딩테스트 문제

✔ 방법1 import java.util.Arrays; class Solution { public int[] solution(int n, int[] numList) { return Arrays.stream(numList).filter(v -> v % n == 0).toArray(); } } 1. Arrays를 임포트 해주기 2. .stream(numlist) 에서 뽑겠다. 3. .filter(v -> v % n == 0) 필터를 이용하여 조건에 맞는걸 뽑겠다. 조건은 n으로 나눈 경우 0 4. .toArray() - List 컨테이너의 인스턴스를 배열(array)로 만드는것이 'toArray' 메서드 ### new ArrayList() - 컬렉션 생성 시, 새로운 주소값으로 할당하기 위한 용도 new A..

백준 Python 1302번 (베스트셀러)

문제 - 1302 김형택은 탑문고의 직원이다. 김형택은 계산대에서 계산을 하는 직원이다. 김형택은 그날 근무가 끝난 후에, 오늘 판매한 책의 제목을 보면서 가장 많이 팔린 책의 제목을 칠판에 써놓는 일도 같이 하고 있다. 오늘 하루 동안 팔린 책의 제목이 입력으로 들어왔을 때, 가장 많이 팔린 책의 제목을 출력하는 프로그램을 작성하시오. song = int(input('오늘 책이 얼마나 팔렸나요?')) books = {} # books를 딕셔너리형 {}으로 초기화 for _ in range(song): book = input('어떤 책이 팔렸나요?') if book not in books: books[book] = 1 # book이 기존 딕셔너리 books에 없다면 빈도를 1 else: books[boo..

백준 - Python 1543번 문제 (문서 검색)

문제 - 1543 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한다. 예를 들어, 문서가 abababa이고, 그리고 찾으려는 단어가 ababa라면, 세준이의 이 함수는 이 단어를 0번부터 찾을 수 있고, 2번부터도 찾을 수 있다. 그러나 동시에 셀 수는 없다. 세준이는 문서와 검색하려는 단어가 주어졌을 때, 그 단어가 최대 몇 번 중복되지 않게 등장하는지 구하는 프로그램을 작성하시오 hun = input('입력 값1') # 입력 값1 seop = input('입력 값2') # 입력 값2 cnt = 0 song = 0 while song

Python 백준 - 1966번 문제 - 큐

문제 -1 966 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다. 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다. 예를 들어 Queue에 4개의 문서(A B C D)가 있고, ..

백준 - Python - 11650문제

2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. -11650 song = int(input()) hun = [] for i in range(song): # 반복을 돌리며 입력받은 [a, b] = map(int, input().split()) hun.append([a, b]) # hun 리스트 안에 a, b좌표를 저장 hun = sorted(hun) # 정장된 값을 정렬 for i in range(song): print(hun[i][0], hun[i][1]) # 위에 있는 출력식으로 출력

Python 백준 스택수열

문제 1. 스택수열 스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in First out) 특성을 가지고 있다. 1부터 n까지의 수를 스택에 넣었다가 뽑아 늘어놓음으로써, 하나의 수열을 만들 수 있다. 이때, 스택에 push하는 순서는 반드시 오름차순을 지키도록 한다고 하자. 임의의 수열이 주어졌을 때 스택을 이용해 그 수열을 만들 수 있는지 없는지, 있다면 어떤 순서로 push와 pop 연산을 수행해야 하는지를 알아낼 수 있다. 이를 계산하는 프로그램을 작성하라. 입력 첫 줄에 n (1 ≤ n ≤ 100,..

백준 Python(25304, 11022, 1110, 10807, 10871)

# 25304 p = int(input()) # 총 값 n = int(input()) # 물건 종류 수 sum =0 for i in range(n): # 물건 수 만큼 반복 a,b = map(int, input().split()) sum += a*b # 산 물건종류 곱하기 수 계속 더하기 if p == sum: print('Yes') else : print('No') # 11022 n = int(input()) for i in range(1,n+1): a,b = map(int, input().split()) print(f'Case #{i}: {a} + {b} = {a+b}') # f-string 사용 (f'{x}') {}안에 변수 입력하여 문자열을 원하는 모형으로 변형한다 # 1110 n = int(in..

백준 python(1000, 10869, 18108, 1330, 2739, 10950, 8393)

✔ 백준 Python 아직 Python이 초보긴 하지만 책만 보고 공부하기 너무 심심하고 부족해서 따로 문제룰 풀고 싶어 복습용으로 풀기 시작하였습니다. # 1000번 A + B A,B = input().split() # input은 문자형으로 받는다, split()은 () 공백으로 나눈다 print(int(A)+int(B)) # input은 문자형안데 수를 더할려면 정수형 int()를 사용하여 정수로 변경 # 10869번 사칙연산 A,B = input().split() print(int(A)+int(B)) print(int(A)-int(B)) print(int(A)*int(B)) print(int(A)//int(B))# / 나누기 // 몫 print(int(A)%int(B))# % 나머지 # 18108..

코딩테스트 공부 시작

학원 다니며 자격증 공부 및 대학원 졸업시험 준비하며 조금씩이라도 공부한 내용을 올리겠습니다. 주로 올리는 내용은 틀린 문제 또는 참고문제 위주로 올리겠습니다. 2558번 (세 자리 수) × (세 자릿수)는 다음과 같은 과정을 통하여 이루어진다. (1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6) 위치에 들어갈 값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다. 출력 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. 예제 입력 1 472 385 예제 출력 1 2360 3776 1416 181720 10171번 문제 \ 출..