전체 글 138

‘words = [[0]*15]*5’와 ‘words = [[0 for j in range(15)] for i in range(5)]’의 차이점

>> words = [[0]*15]*5 >> words = [[0 for j in range(15)] for i in range(5)] 위 두 개의 코드의 차이점은 리스트의 초기화 방법이다. '[0]*15'는 0으로 초기화된 길이가 15인 리스트를 만들고, 이 리스트를 5번 반복하여 5개의 리스트를 생성한다. 이 경우, 5개의 리스트가 모두 동일한 리스트 객체를 참조하므로, 한 리스트를 수정하면 모든 리스트가 영향을 받는다. 'words = [[0 for j in range(15)] for i in range(5)]' 코드의 경우 0으로 초기화된 길이가 15인 리스트를 5버 생성하여, 5개의 독립된 리스트를 만든다. 이 경우, 5개의 리스트가 서로 독립적으로 생성되므로, 한 리스트를 수정해도 다른 리스트..

BAEKJOON_11659 "구간 합 구하기 4" PYTHON

[백준] 11659번 Python 파이썬 https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 이번 문제에서는 누적합 알고리즘을 사용하였다. num 리스트의 누적합을 num_s 리스트에 담아주었다. 리스트 num_s의 첫 번째 원소는 num리스트의 첫 번째 요소를 그대로 담아주고 2번째 원소부터는 for문을 사용하여 전 인덱스의 원소에 해당 인덱스 원소에 더한 값을 넣어주었다. n, m = map(int, input().spl..

BAEKJOON_1085 "직사각형에서 탈출" PYTHON

[백준] 1085번 Python 파이썬 https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net 직사각형의 경계값과 가장 가까운 거리를 구하기 위해 입력받은 좌표 x, y와 x축 좌표끼리 뺀 값과 y축 좌표끼리 뺀 값 중 최소를 출력해준다. x, y, w, h = map(int, input().split()) print(min(x, y, w-x, h-y)) 혼자 공부하며 올리는 블로그입니다. 틀린 내용은 댓글 남겨주시면 감사하겠습니다.

파트7. 상속 [super와 부모생성자 - 실습]

[ Programmers - 무료 자바 입문 강의 ] https://school.programmers.co.kr/learn/courses/5/lessons/392 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ● super와 부모생성자 → 생성자는 객체를 초기화 한다. → 생성자가 호출될 때, 자동으로 부모의 생성자가 호출되면서 부모 객체를 초기화한다. → super : 부모를 가리키는 키워드 → 부모의 생성자를 임의로 호출하지 않으면, 부모 class의 기본 생성자가 자동으로 호출된다. // Bus.java public class Bus extends ..

BAEKJOON_2798 "블랙잭" PYTHON

[백준] 2798번 Python 파이썬 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 이 문제는 brute force 알고리즘을 사용하여 푸는 문제이다. # 틀린 코드 다음 코드로 실행하였더니 아래 사진과 같이 리스트의 수들이 중복되어 더해졌다. n, m = map(int, input().split()) num = list(map(int, input().split())) rt = 0 for i in num[0:..

BAEKJOON_18870 "좌표 압축" PYTHON

[백준] 18870번 Python 파이썬 https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net # 시간 초과 시간 초과와 런타임 오류가 정말 많이 난 문제였다. 시간 초과가 난 코드는 입력받은 숫자들의 인덱스를 찾아 출력하도록 하였다. 인덱스를 찾아서 출력을 하기 때문에 입력이 많을 경우 시간이 오래걸린다. # 시간 초과 코드 n = int(input()) num = list(map(int, inpu..

BAEKJOON_10814 "나이순 정렬" PYTHON

[백준] 10814번 Python 파이썬 https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 이 문제는 sort 함수를 이용하여 문제를 해결하였다. 먼저 나이와 이름을 입력받아야 하는데 나이순으로 출력하고, 나이가 같다면 입력받은 순서대로 출력해야 하기 때문에 입력받은 순서도 리스트에 담아준다. 만들어진 리스트를 나이순, 입력받은 순서대로 sort 함수를 이용하여 정렬해준다. 출력은 for문을 이용하여 나이, 이름을 출력해 준다. import sys n..

BAEKJOON_1181 "단어 정렬" PYTHON

[백준] 1181번 Python 파이썬 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 먼저 for문을 사용하여 words 리스트에 단어들을 담아주는데 if문을 사용하여 중복이 되는 단어는 담지 않도록 해준다. 정렬을 하기 위해 sort() 함수를 사용하는데 key 함수와 lambda 함수를 이용하여 문자열의 길이를 우선 정렬한 후, 알파벳 순으로 정렬해준다. import sys n = int(sys.stdin.readline()) ..