알고리즘 36

[2022-03-24] 유기농 배추

푼 시간 : 2시간정도 ( 잘 모름.. ) 언어 : 파이썬 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 대충 그래프 문제 이제 코딩테스트 준비를 진짜 해야되서 풀면서 힌트가 될만한 문제는 다시 스크랩을 할 예정이다. 내가 푼 문제니까 다시 보면 아 이런 문제는 이런 유형이구나 하고 기억할거같아서 다시 넣는다. # 백준 1012번 유기농 배추 # 2시간은 걸린듯 # 파이썬은 2차원 배열을 선언하면서 시간이 오래걸린다. (2차원 배열의 객체크기가 클경우) ..

코딩테스트 2022.03.24

탐색 알고리즘, 시간복잡도 파이썬

선형 탐색법 def findIndexLinear(array, condition): for i in range(len(array)): if array[i] == condition: return i # 최선의 경우 - 한번의 탐색으로 해결 findIndexLinear([2,4,5,1,6], 2) # 최악의 경우 - 배열의 크기만큼 탐색으로 해결 print(findIndexLinear([2,4,5,1,6], 6)) 시간복잡도 = O(n) ** 데이터 수가 많아지면 효율이 굉장히 안좋아짐 정렬되지 않은 데이터에 자주 사용 이진 탐색법 def findIndexBinary(array, target): start = 0 end = len(array)-1 mid = (start+end)//2 while end - st..

Python 2022.03.19

[2021-09-10] 복서 정렬하기

푼 시간 : 2시간 30분 언어 : 자바 https://programmers.co.kr/learn/courses/30/lessons/85002?language=java 코딩테스트 연습 - 6주차 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr 정렬인데, 단순한 정렬같은 느낌이 아니었다... 완전탐색을 보는듯한 풀이법.. 코드를 더 효율적으로 쓰고싶다...ㅜㅜ 주어진 조건대로 풀이를 하고나서 처음에는 테스트케이스가 맞아서 기뻐했는데 제출을 해보니 안맞는것이었다. 조건 몇가지를 내 맘대로 생각해서 질질 끌고..

코딩테스트 2021.09.11

[2021-07-25] 기능개발 (lv2)

푼 시간 : 50분 언어 : 자바 https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 스택 큐 활용해야되서 했는데, 오히려 다른데서 함정에 빠져버렸다. 작업량이 끝내려니까 자꾸 하나가 안더해져서 계속 골치였는데, 그냥 잠깐 노래듣다보니 마지막에 더하면 되는데 왜 굳이 못 더할까? 이런 생각이 들었다. 끝에 바로 더해버렸다. def solution(progresses, speeds): answer = [] ..

코딩테스트 2021.07.25

[2021-07-13] 예산

푼 시간 : 5분 언어 : 자바 https://programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 탐욕법이라고 생각했지만 그냥 쉽게 생각했다. 어차피 모든 부서가 작은값부터 들어가야 최대가 될수 있기에 그냥 다른거 안 넣었다.. 지문 참 어렵게 풀어 쓴 거 같다. import java.util.*; class Solution { public int solution(int[] d, int budget) { int answer = 0..

코딩테스트 2021.07.13

[2021-07-12] 숫자 문자열과 영단어

푼 시간 : 30분 언어 : 자바 https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 조건 하나를 잘못 줘서 계속 고민했다. 문자열 핸들링에 좀 능숙해졌다고 느낀것이 mapping개념으로? 풀었는지는 몰라도 mapping변수를 만들어, 매핑시키듯이 문제를 풀었다. class Solution { public int solution(String s) { String answer = ""; // 일부러 St..

코딩테스트 2021.07.12

[2021-06-15] 내적

푼 시간 : 5분 언어 : 자바 https://programmers.co.kr/learn/courses/30/lessons/70128 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 내적 이란 말은 아직도 모르지만 그냥 풀었다.. 볼게 별로 없는 문제 왜 처음에 answer에 123456789가 들어가있는지 모르겠다. class Solution { public int solution(int[] a, int[] b) { int ..

코딩테스트 2021.06.15

[2021-06-13] 로또의 최고 순위와 최저 순위

푼 시간 : 15분 언어 : 자바 https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr temp를 써서 자연수를 넣어줬다. 전에 본적있는 방식이라 해봤는데 배열쓰기 참 편해서 좋은거 같다. 마지막에 count가 temp를 초과할것이 분명해서 고민하다가 어차피 0도 6등이기에 그냥 6을 하나 더 넣어줬다. import java.util.*; class Solution {..

코딩테스트 2021.06.13

[2021-06-11] 시저 암호

푼 시간 : 20분 언어 : 자바 https://programmers.co.kr/learn/courses/30/lessons/12926 코딩테스트 연습 - 시저 암호 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀 programmers.co.kr 문자열 핸들링.. 대경권 코딩테스트에서 한번 나왔을때 멍청하게 풀어서 풀지도 못하고 시간만 날렸는데, 이번에는 그냥 풀어버리자!라는 생각으로 풀어버리려 했으나 은근히 오래걸렸다. 이 그냥 처음부터 Z에 대한걸 걸어버렸으면 되는거였는데 왜 접근법이 항상 이런지 모르겠다. 다른분들 코드를 보고나니 좀 코..

코딩테스트 2021.06.11

[2021-06-10] 124나라의 숫자 (lv2)

푼 시간 : 3시간(못 풀었음) 언어 : 자바 https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 푸느라 머리가 깨질뻔 했는데, 결국엔 풀지는 못 했다. 애초부터 접근방식이 잘못 된 건가 싶은데 맞는 것 같다. 알고리즘이라는게 기본적으로 어떤식으로 탐색해야 할지 컴퓨터한테 알려주는 과정인 것 같은 느낌이 자꾸 드는데 나는 그 능력이 부족한 것 같다. 풀지는 못했고, 구글링을 통해 이해하고 글을 남긴다. class Solution { public String solution(int n) { String[] num = {"4","1","2"}; // 배열에 미리 4, 1, 2를 넣어놓는다..

코딩테스트 2021.06.10