전체 글 573

[Python] 백준 풀기 1269 - 대칭 차집합

파이썬 백준 1269번 실버 4 https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 문제 보기 분류: 자료 구조, 해시를 사용한 집학과 맵, 트리를 사용한 집학과 맵 문제 풀기 각 집합의 원소의 개수가 200,000 개여서 시간 초과 안걸릴거라 생각했다가 제출하고 보니 x in List 연산 이 O(n) 의 시간 복잡도를 갖는다는 것을 알았다. 이번 기회를 통해 파이썬의 집합 기호에 대해 알게 되었다. 교집합 set_a & set_b 합집합 ..

공부하기/백준 2023.01.05

[Python] 백준 풀기 1100 - 하얀 칸

파이썬 백준 1100번 브론즈 2 https://www.acmicpc.net/problem/1100 1100번: 하얀 칸 체스판은 8×8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램 www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 주어진 문자열을 한 줄의 리스트에 모두 넣고 짝수 index (흰색 칸) 에 대해 'F' 가 있는지 검사한다. 이때 리스트에 입력되는 각각의 row 줄은 흰색과 검은색이 변경되기 때문에 마지막에 index 를 하나 늘리기 위한 문자 '0' 을 매 줄 추가시킨다. 코드 보기 import sys inputdata = sys..

공부하기/백준 2023.01.04

[Python] 백준 풀기 2822 - 점수 계산

파이썬 백준 2822번 실버 5 https://www.acmicpc.net/problem/2822 2822번: 점수 계산 8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문 www.acmicpc.net 문제 보기 분류: 정렬 문제 풀기 입력되는 점수들을 score_ls 리스트 index 와 문제 번호가 일치하도록 입력 받는다. 점수 리스트를 내림차순으로 정렬을 하고 가장 큰 앞쪽 5 개만 남겨두고 나머지를 제거한다. 입력 리스트 score_ls 의 원소를 문제 번호에 맞게 순차적으로 빼내어 5 개로 정렬된 리스트의 원소에 있는지 없는지를 판별하여 있다면 그..

공부하기/백준 2023.01.03

[Python] 백준 풀기 11441 - 합 구하기

파이썬 백준 11441번 실버 3 https://www.acmicpc.net/problem/11441 11441번: 합 구하기 첫째 줄에 수의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄에는 A1, A2, ..., AN이 주어진다. (-1,000 ≤ Ai ≤ 1,000) 셋째 줄에는 구간의 개수 M이 주어진다. (1 ≤ M ≤ 100,000) 넷째 줄부터 M개의 줄에는 www.acmicpc.net 문제 보기 분류: 누적 합 문제 풀기 주어진 모든 숫자들에 대하여 순차적으로 누적 합을 구하여 새 리스트에 저장을 한다. 예제 입력 1 의 경우 리스트의 index 를 맞추기 위해 0 으로 시작해서 0+10, 0+10+20, 0+10+20+30, ,,, 규칙으로 저장해 나간다. 결과적으로 i ..

공부하기/백준 2023.01.02

[Python] 백준 풀기 1431 - 시리얼 번호

파이썬 백준 1431번 실버 3 https://www.acmicpc.net/problem/1431 1431번: 시리얼 번호 첫째 줄에 기타의 개수 N이 주어진다. N은 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어 www.acmicpc.net 문제 보기 분류: 정렬 문제 풀기 가장 바깥 리스트를 시리얼 번호 최대 길이인 50+1 로 지정하고 기타의 시리얼 번호를 입력받을 때마다 각 index 에 맞게 누적하여 저장한다. 저장하기 전에 함수 fnSumOfNum(serial) 에 넣어 숫자만 판별하여 그 수를 모두 더하고 sNum_serial 에 첫 번째에 그 합을 두 번째에 시리얼 번호를 모은다. 예..

공부하기/백준 2023.01.01

[Python] 백준 풀기 11728 - 배열 합치기

파이썬 백준 11728번 실버 5 https://www.acmicpc.net/problem/11728 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net 문제 보기 분류: 정렬, 두 포인터 문제 풀기 올해 2022년 마지막 날에 푸는 마지막 백준 문제이다. 시간복잡도를 주의해야 할 것 같다. 각각의 배열의 최대 크기는 1_000_000 까지 주어지기에 extend() 함수를 이용하면 뒤에 붙여질 배열의 최대 크기인 1_000_000 까지 시간복잡도가 발생한다. O(len(othe..

공부하기/백준 2022.12.31

[Java 복습] DAO, DTO 작동 구조 연습

DAO, DTO 구조에 대한 이해가 부족하기에 이에 대한 연습을 하기위해 나만의 간단한 형식의 Main, DAO, DTO 클래스를 작성하여 데이터 프린트를 해보았다. 데이터 교환 역할을 할 DTO // SmallDto.java package dto; public class SmallDto { private int num1; private int num2; public SmallDto() {} public SmallDto(int num1, int num2) { super(); this.num1 = num1; this.num2 = num2; } public int getNum1() { return num1; } public void setNum1(int num1) { this.num1 = num1; } pu..

[Java] ArrayList 모든 원소 출력하기

for-each & Arrays 반복 출력 실행을 통해 원소를 매번 출력하는 방법과 Arrays 를 통해 단번에 내부 원소를 확인하는 방법. for-each 를 이용한 출력. // for-each 를 이용한 출력. for (Object element : myList) { System.out.println(element); } Arrays 를 이용한 출력. // Arrays 를 이용한 출력. System.out.println(Arrays.deepToString(myList.toArray())); 실행 코드 import java.util.List; import java.util.ArrayList; import java.util.Arrays; public class MyClass { public static ..

알아가기/Java 2022.12.31

[Python] 리스트 안의 문자 붙여서 출력

리스트 출력 방법 리스트를 바로 print() 함수를 써서 출력하게 되면 각각의 value 는 빈칸으로 분리되어 출력된다. 이 출력이 필요할때는 편하긴 한데 빈칸없이 출력을 하려고 한다면 항상 찾아보게 된다. 이러한 필요성에 의해 기록을 남겨둔다. 간단하게 프린트 할 수 있는 두 가지 방법으로, print(*LIST, sep="") print("".join(LIST)) 가 있다. 이때, LIST 는 문자형 리스트 이다. 숫자, 문자 리스트에 대한 간단한 예시 입력 코드 ## integer number_ls = [1, 2, 3, 4, 5] print(number_ls) print(*number_ls) print(*number_ls, sep="") # print("".join(number_ls)) # Typ..

알아가기/Python 2022.12.31