본문 바로가기

개발자 강화/코딩 테스트

(58)
[프로그래머스] 최소직사각형 - 완전탐색 (c++) 언어제한 코테 대비를 위해 C++과 친해지는 시간을 가져보자 lv.1 가장 간단한 문제! 파이썬으로 코테 준비를 해왔는데,후배가 c++이 파이썬 list랑 비슷한 기능을 지원해서 괜찮다길래 써보려고 함 https://school.programmers.co.kr/learn/courses/30/lessons/86491?language=cpp 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 가로 세로 길이가 각각 다른 명함이 있고이 명함들을 다 담을 수 있는 최소 가로세로를 가진 명함 케이스의 너비를 구해야 한다 여기에서 각 배열 요소의 sizes[i][0]과 sizes[i][1]의 각 max값을 구하면 편할..
[프로그래머스] 타겟넘버 - BFS/DFS 알고리즘 고득점 키트 BFS/DFS lv2 타겟넘버 숫자 배열이 주어지고, 목표 값이 있음각 숫자를 더하거나 빼서 목표 값을 만들고, 총 목표 값을 몇 가지로 만들 수 있는지 return하면 됨 혼자 못풀었음풀이 참고함 BFS 풀이 모든 연산을 저장하는 leaves 배열이 존재for문을 돌며 각 숫자를 탐색    leaves 안에 있는 모든 숫자들에 대해서, 현재 숫자를 더하거나 뺀 값을 임시 배열에 저장함    leaves 배열 값을 임시 배열값으로 치환함   #어차피 숫자 순서를 바꾸거나 하는 일은 없으니까   #순서대로 각 숫자를 더하거나 뺐을 때 경우를 다 저장해서 나중에 target 값인지만 확인하면 됨 for문 돌며 leaves안에 있는 값 살펴봄. target값이면 answer +1 def ..
[프로그래머스] 조이스틱 - Greedy 프로그래머스 고득점키트 그리디 조이스틱 레벨2 완성해야 하는 문자열이 주어지고, 맨 처음에는 문자열의 길이만큼 A가 존재함상하로 움직이면 현재 알파벳의 이전 또는 이후 알파벳이 나옴, 좌우로 움직이면 각 문자 사이 커서 이동일단 상하로 움직여서 알파벳을 바꾸는 건 간단함파이썬 같은 경우에는 ord(알파벳)하면 아스키값을 알 수 있음그래서 ord('A') 또는 ord('Z')값과 각 문자열의 값을 뺄셈해서 절대값을 구하고, 둘 중 작은 값을 고름대신 주의해야될 것은 기본 값이 A이기 때문에 Z에서 시작하려면 A->Z로 변환하는 단계가 필요해서 1 더함그래서 A에서 아래로 움직여서 해당 알파벳으로 가는게 나은지?아니면 A에서 위로 움직여서 Z로 바꾼 후, 계속 위로 움직여서 해당 알파벳으로 가는게 나은지?그..
[프로그래머스] 구명보트-Greedy 프로그래머스 고득점키트 Greedy lv1 구명보트 구명보트는 2명씩만 탈 수 있고, limit을 넘어서는 안됨처음에는 그냥 sort한 배열을 이용해서 마지막에서 2개씩 끊어서 쓰려고 했음마지막에서 2개 끊어서 limit보다 작으면 둘 다 보내고, limit보다 크면 1명 보내고근데 테케, 효율성 50%만 통과함이건 투포인터라는 기법을 써야 됨. 두 개의 값을 저장해서 계속 업데이트가장 작은 값+가장 큰 값을 매칭해서 태워보내는 방식left=0(가장 작은 값), right = len(people)-1 (가장 큰 값)left만약 가장 작은 값+가장 큰 값이 limit 이하이면 태울 수 있음그럼 작은 값을 1 증가시킴만약 태울 수 없으면 if문 밖으로 빠져 나오는데, 무거운 사람만 태워보냄(작은값 그대로)누..
[완전탐색-1주][백준] 1254 - 팰린드롬 만들기[실2] 문제동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다.동호는 규완이를 위한 깜짝 선물을 준비했다. 동호는 규완이가 적어놓고 간 문자열 S에 0개 이상의 문자를 문자열 뒤에 추가해서 팰린드롬을 만들려고 한다. 동호는 가능하면 가장 짧은 문자열을 만들려고 한다.동호가 만들 수 있는 가장 짧은 팰린드롬의 길이를 출력하는 프로그램을 작성하시오.입력첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 최대 50이다.출력첫째 줄에 동호가 만들 수 있는 가장 짧은 팰린드롬의 길이를 출력한다. --------- 1차 시도 시작: 24.09.10 13:50중간에 딴짓 많..
[완전탐색-1주][백준] 26518 - 수열의 극한값[실2] 풀이 기록용 log..삽질 과정까지 포함되어 있습니다. 이거 문제 고른 스터디원 누구냐 나와라이거 수학이잖아 ------1차 시도시작: 24.09.10. 13:33슬슬 식곤증으로 졸리다종료: 24.09.10. 13:46 아니 수학 너무 오랫동안 안해서 머리가 안굴러가 이거 그냥 lim(n->무한) a_n/a_(n-1)=alpha로 두고식을 전재해서 풀어서alpha = (b+sqrt(b*b+4*c))/2 아니 이건 완전 탐색이 아니잖아; 코테 대비용으론 비추합니다 import sysimport mathb,c,a1,a2 = map(int, input().split())# a1, a2 초항# ai = b*a_(i-1) + c * a_(i-2) (i >= 3)# a_n / a_(n-1)의 극한 구하기print(..
[완전탐색-1주][백준] 로또 - 6603번[실2] 우효www로또다제ㅈㅅ이 문제도 실시간으로 제 사고 흐름을 정리합니다. 핵심만 말하는 글이 아닙니다. 문제독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다.로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다.예를 들어, k=8, S={1,2,3,5,8,13,21,34}인 경우 이 집합 S에서 수를 고를 수 있는 경우의 수는 총 28가지이다. ([1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2,3,5,13,21], ..., [3,5,8,13,21,34])집합 S와 k가 주어졌을 때, 수를 고르는 모든 방법을 구하는 프로그램을 작성하시오.입력입력은 여..
[완전탐색-1주][백준] 1062_가르침 [골4] 삽질log본론만 말하는 글이 아니라, 그냥 제 삽질 과정을 기록합니다... 문제남극에 사는 김지민 선생님은 학생들이 되도록이면 많은 단어를 읽을 수 있도록 하려고 한다. 그러나 지구온난화로 인해 얼음이 녹아서 곧 학교가 무너지기 때문에, 김지민은 K개의 글자를 가르칠 시간 밖에 없다. 김지민이 가르치고 난 후에는, 학생들은 그 K개의 글자로만 이루어진 단어만을 읽을 수 있다. 김지민은 어떤 K개의 글자를 가르쳐야 학생들이 읽을 수 있는 단어의 개수가 최대가 되는지 고민에 빠졌다.남극언어의 모든 단어는 "anta"로 시작되고, "tica"로 끝난다. 남극언어에 단어는 N개 밖에 없다고 가정한다. 학생들이 읽을 수 있는 단어의 최댓값을 구하는 프로그램을 작성하시오.입력첫째 줄에 단어의 개수 N과 K가 주어진..