https://programmers.co.kr/learn/courses/30/parts/17042 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 SQL 고득점 Kit에서 SELECT 문제에 있는 7개의 문제를 모두 풀었다. 각 문제는 위의 링크에 있고 워낙 간단한 문제라 문제 설명은 따로 안적고 정답 코드만 올린다. 1. 모든 레코드 조회하기 SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID; 2. 역순 정렬하기 SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID ..
https://programmers.co.kr/learn/courses/30/lessons/42746?language=python3 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 문자열 정렬 문제였는데.. 꽤 오래 걸렸다.. 바본가.. 처음 문제 보고 permutations 이용해서 풀어보려고 했다. 생각해보니 너무 불필요한 과정일 것 같았고 결국 또! 다른 사람의 풀이를 찾아다녔다. 여기서 이 문제는 '정렬'이라는 걸 잊고 있었다. 문자열 정..
https://programmers.co.kr/learn/courses/30/lessons/12943 코딩테스트 연습 - 콜라츠 추측 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2 programmers.co.kr 프로그래머스 레벨1 연습문제인 콜라츠 추측을 풀었다. while의 조건문만 제대로 입력하면 금방 풀 수 있는 문제이다. 정답 코드 def solution(num): answer = 0 while num != 1 : if answer > 500 : return -1 if num % 2 == 0 : num = num/2 elif num..
https://programmers.co.kr/learn/courses/30/lessons/12940 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 프로그래머스 레벨1에 있는 최대공약수와 최고공배수 구하는 문제를 풀었다. 처음 문제를 보고 2개의 for문을 사용해서 최소 공배수와 최대 공약수를 n,m별로 구해야하나 생각을 했는데 그렇게 되면 시간 복잡도가 굉장히 비효율적일 것 같아서 다른 방법을 찾아봤다. 찾아보니까 최대공약수는 유클리드 호제법이라는 알고리즘으로 구할 수 있었..
https://programmers.co.kr/learn/courses/30/lessons/59040 코딩테스트 연습 - 고양이와 개는 몇 마리 있을까 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 프로그래머스에서 SQL 문제도 풀 수 있어서 코테 대비 겸으로 풀기 시작했다. 가볍게 group by로 풀어봤는데 오랜만에 풀어서 그런지 조금 버벅거렸다 ㅎ 간단한 group by 문제였으며 count를 사용해서 몇개가 있는지 확인하는 쿼리..
https://programmers.co.kr/learn/courses/30/lessons/12934 코딩테스트 연습 - 정수 제곱근 판별 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함 programmers.co.kr 프로그래머스에서 레벨1 연습문제를 왕창 풀다가 기억해두면 좋을 것 같은 문제라서 따로 포스팅을 하게 되었다. 정수 제곱급 판별 문제로 math 모듈을 쓰면 엄청 편하다! 정답 코드 import math def solution(n): if math.sqrt(n).is_integer() : return (math.sqrt(n)+1)**..
https://programmers.co.kr/learn/courses/30/lessons/12930 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 programmers.co.kr 프로그래머스에서 뭔가 예전에 비슷한 문제를 푼 것만 같았던 '이상한 문자 만들기'를 풀었다. 왜이렇게 푼 것만 같지.. 왜지.. 첫번째 시도 - 테스트 케이스에서 왕창 틀림 def solution(s): answer = [] strings = s.split("") for i in range(len(strings)) : strings[i] = list..
https://programmers.co.kr/learn/courses/30/lessons/12926 코딩테스트 연습 - 시저 암호 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀 programmers.co.kr 프로그래머스 레벨1 시저암호 문제를 풀었다. 처음엔 하드코딩으로 A~Z, a~z 리스트를 만들어서 for문으로 문자를 바꾸려고 했는데 생각보다 잘 안됐다. 더 좋은 방법이 있을 것 같아서 구글링을 했고 아스키 코드로 바꾸는 방법을 알게 되었다. 참고한 사이트 : https://wooaoe.tistory.com/72 정답 코드 def ..
https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 프로그래머스에서 level 1 연습문제인 '로또의 최고 순위와 최저 순위' 문제를 풀었다. for문을 사용하지 않고 번호가 일치하는지 아닌지 비교하는 방법을 떠올리기가 힘들었던 문제였다. 찾아보니 set에서 & 연산으로 공통인 요소를 뽑아낼 수 있었고 이를 사용해 맞춘 번호의 개수를 알아냈다. 정답 코드 def so..
https://programmers.co.kr/learn/courses/30/lessons/12977 프로그래머스에서 토요일에 있었던 코테 준비를 위해 풀었던 소수 만들기 문제이다. 소수 만들고 판별하는 문제에 꽂혀서 왕창 푼 듯 ㅋㅋ 얼마전에 itertools permutations을 사용해서 주어진 수들의 조합을 구했던 기억이 있어서 그걸로 풀었으나 왜인지 모르겠지만 시간 초과로 효율성 테스트에서 통과하지 못했다. 다른 방법이 있나 찾아보니까 combination을 사용해서도 조합을 할 수 있었다. 정답 코드 from itertools import combinations as cb def solution(nums): cnt = 0 for a in cb(nums, 3) : Sum = sum(a) for..