본문 바로가기

분류 전체보기

(224)
[python/java] 프로그래머스 Lv2. - 최솟값 만들기 코딩테스트 연습 - 최솟값 만들기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 파이썬으로는 배열의 정렬을 사용하여 매우 간단하게 풀었다. [python] def solution(A,B): answer = 0 A.sort() B.sort(reverse=True) for i in range(len(A)): answer += A[i]*B[i] return answer 그런데 자바를 사용할 경우 이슈가 발생했다. 기존에 알고있던 Arrays.sort()와 Arrays.sort(arr, Collection..
[python] 프로그래머스 Lv2. - 줄 서는 방법 코딩테스트 연습 - 줄 서는 방법 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 이해하는 것이 꽤나 어려웠다. 팩토리얼까지는 접근을 했는데 그 다음 식으로 구현하는 것에 애를 먹었다. 문제와 같이 n=3, k=5일 경우 모든 경우의 수를 나열해보면 다음과 같다. [1,2,3] [1,3,2] [2,1,3] [2,3,1] [3,1,2] [3,2,1] 따라서 결과는 5번째 방법인 [3,1,2]가 리턴되어야 한다. 줄을 서는 모든 경우의 수는 n을 일렬로 나열하는 경우의 수 n!가지이다. 예를 들어..
[java/python] 프로그래머스 Lv2. - 숫자의 표현 코딩테스트 연습 - 숫자의 표현 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 난이도가 높지 않은 문제였다. [python] def solution(n): answer=1 for i in range(1, n+1): sum=i for j in range(i, n-1): sum+= j+1 if sum > n: break if sum == n: answer+=1 break return answer 처음에 sum의 크기를 고려하지 않았다가 효율성 테스트에서 시간초과가 발생했다. 계산 횟수를 줄이기 위해 s..
[java/python] 프로그래머스 Lv.2 - 땅따먹기 코딩테스트 연습 - 땅따먹기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr dp를 사용하여 해결하였다. [python] def solution(land): if len(land) == 1: return max(land) else: for i in range(1,len(land)): for j in range(4): if j == 0: land[i][j] += max(land[i-1][1], land[i-1][2], land[i-1][3]) elif j ==1: land[i][j] += max(lan..
[java] stack 구현 자바에서 스택을 구현하려면 직접 구현하는 방법과 Stack 클래스를 사용하는 방법 두 가지가 있다. Stack 클래스를 사용하기 이전 직접 이해하고 구현할 줄도 알아야 하기 때문에 두 가지 방법 다 정리해 보려고 한다. 1. 직접 구현하기 1-1 배열로 구현 * search와 empty는 자바에서 지원해 주므로 여기서는 push, pop, peek만 구현한다. public class Stack{ int top; int size; int[] stack; public Stack(int size){ this.size = size; stack = new int[size]; top = -1; } public void push(int item){ stack[++top] = item; } public void pop..
[java] 문자열 한 글자 씩 자르기 java에서의 문자열 자르기는 두 가지의 방법이 있다. 1. split() split 함수는 특정 문자를 기준으로 문자열을 나누어 배열에 저장한 후 리턴한다. String s = "010-1111-2222"; String sArr = s.split("-");//["010", "1111", "2222"] String sArr2 = s.split("-", 2); // 배열의 크기 지정-> ["010", "1111-2222"] 2. charAt() charAt 함수는 문자열의 인덱스를 사용하기 때문에 for문을 이용한다. String s = "hello"; for(int i=0; i
[java] 배열 문법 정리 배열 - 배열 선언 시 미리 타입, 공간의 길이를 지정 -> 파이썬과 달리 유기적으로 늘어나지 않음. - 길이를 지정하지 않으면 컴파일 오류 발생 int[] arr = new int[3]; int arr1[] = {1,2,3,4}; int[] arr2 = {1,2,3,4}; String[] name = new String[3]; String[] name2 = {"one", "two"}; 자바의 출력문은 System.out.println()을 입력하여 배열을 출력한다면 메모리에 있는 배열의 주소값을 출력한다. 따라서 Arrays.toString()을 이용하여 배열을 출력해야한다. 2차원 배열의 경우 Arrays.deeptoString()을 이용하여 한 번에 출력할 수 있다. *Arrays는 java.uti..
패스트캠퍼스 Python 코딩테스트 강의 2주차 이번 강의에서는 백준 1874 문제와 1966,5397 문제를 학습하였다. 1. 1874 1874번: 스택 수열 (acmicpc.net) 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 스택 문제로 이번 문제에서 핵심 아이디어 2가지는 다음과 같다. 1. 스택의 삽입 2. 스택에서 원소를 빼낼 때 내림차순을 유지할 수 있는가? 스택이 LIFO 성질을 가지고 있는것에 유의하여 코드를 작성하였다. n = int(input()) st..

728x90