백준 1010번 다리놓기(python3)
·
Algorithm/백준
다리를 그림으로 그리고 규칙성을 파악하면 쉽게 풀 수 있는 문제이다. 첫번째 n의 다리와 첫번째 m의 다리를 이어놓고 그 아래의 다리를 보면, 이전에 적용된 다리의 경우의 수가 계속 적용되어 나옴을 확인할 수 있다. n이 1일 경우 m과 같아서 for문 이용해서 미리 만들어주고 그 아래에 위의 공통된 로직을 짜면 된다. 전형적인 dp문제이지만 다른 사람들 풀이를 보니 조합을 이용해서도 많이 푼 것 같다. # https://www.acmicpc.net/problem/1010 array = [[0] * 30 for _ in range(30)] for i in range(1, 30): array[1][i] = i for i in range(2, 30): for j in range(i, 30): for k in..
Arrays.toString()메소드
·
Language/Java
반복문 돌 필요 없이 쉽게 배열을 출력할 수 있는 메소드! import java.util.Arrays; 임포트 잊지 말고..! int[] sample = {1,2,3,4,5}; System.out.println(Arrays.toString(sample));
백준 13301 타일깔기
·
Algorithm/백준
# https://www.acmicpc.net/problem/13301 # 표로 정리하면 금방 규칙성을 파악할 수 있다. # 타일 개수 1 2 3 4 5 6 7 # 둘레 4 6 10 16 26 42 68 # f(n) = f(n-1) + f(n-2) 의 규칙으로 증가함을 알 수 있다. n = int(input()) answer = [0, 4, 6] def get_circumference(n): if n == 1: return 4 if n == 2: return 6 else: for i in range(3, 81): answer.append(answer[i-1] + answer[i-2]) return answer[n] print(get_circumference(n)) 13301번: 타일 장식물 대구 달성공원..
백준 9625-python 풀이
·
Algorithm/백준
전형적인 dp문제 버튼을 누르는 횟수 별 a와 b횟수를 표로 정리하면 금방 해결방법을 찾을 수 있다. /누르는 횟수 0 1 2 3 결과 A B BA BAB A개수 1 0 1 1 B개수 0 1 1 2 각각의 a,b 개수 별로 현재 인덱스의 개수 = 전 인덱스 개수 + 전전 인덱스 개수 의 규칙임을 한 눈에 알 수 있다. # https://www.acmicpc.net/problem/9625 # 전형적인 f(n) = f(n-1) + f(n-2) 구조임 # 입력 : 버튼 눌리는 횟수: k # 출력 : 사용자가 k번 눌렀을때 결과창에 뜬 a 개수와 b의 개수 k = int(input()) #버튼을 누른 횟수 만큼 a횟수와 b횟수를 각각 나누어 배열로 정리해 보자면 다음과 같다. #클릭:0 1 a = [1, 0] ..
얉은 복사, 깊은 복사(수정중)
·
Language/Java
- 얉은 복사- > 원본과 같은 주소값을 공유하는 복사입니다. // 얉은 복사 int[] origin = {1,2,3,4,5} //복사본 배열 int[] copy = origin; //복사본 배열 수정 copy[2] = 99; /* 실행결과: 원본과 복사본 배열 모두 1 2 99 4 5 이렇게 수정되었음 copy에 orgin의 주소값을 대입해주었기 때문에 원본 배열이 수정되는 결과를 낳는 것임 즉 원본배열을 참조하고 있음 */ -깊은 복사 - > 원본과 동일한 새로운 배열을 만들고 실제 내부 값들을 복사합니다. 1번 방법) 몇번 인덱스부터 몇개를 어느 위치의 인덱스에 복사할껀지 다 직접 지정 가능 int[] orgin = {1,2,3,4,5}; int[] copy = new int[10]; //Syste..
자바 배열 선언 및 할당과 동시에(초기화) 한 번에 끝내기
·
Language/Java
자바 배열 선언 및 할당과 동시에 초기화를 한번에 끝내는 법 int[] arr1 = new int[]{1,2,3,4}; //첫번째 방법 int[] arr2 = {1,2,3,4}; //두번째 방법
Stack과 Heap
·
Language/Java
Heap이라는 영역에서는 절대 주소 값이 겹칠 수 없음. JVM(Java Virtual Machine)은 Heap안의 영역을 비워두지 않고 값 초기화까지 자동으로 진행해줌 Heap영역에는 절대 빈 공간이 존재할 수 없다. 변수는 Stack에 저장됨 Stack의 변수 값을 비워두는 게 가능하지만 초기화해주는 것을 권장. 참조 자료형(int[],double[],String..etc)의 경우 stack안의 변수에 heap의 주소 값이 들어가게 되고 힙의 해당 주소를 참조하게 됨.
Python도 %d %s %f를 지원한다
·
Language/Python
파이썬을 서브 언어로 해서 코테 문제를 풀던중 새로 알게 된 사실. 예전까지는 변수 값과 문자열을 같이 출력하고 싶을 때, 단순히 print() 문 안에 변수와 문자열을 + 처리를 해줘서 아주 간단하게 출력해주었다. 그러나 파이썬도 다른 언어와 같이 % s % d % f도 지원해준다고 한다. 예를 들어 이렇게. print("%d %d " % (zero_count[m], one_count[m])) # 변수 2개이상을 출력하고 싶을때는 이렇게 괄호로 묶어서 처리해주면 된다. 이외에도 여러 가지 방식의 출력이 있으니, 앞으로 답을 출력할 때 다양한 방식으로 출력이 가능할 것 같다.
takoyummy
TakoHub