자료구조 & 알고리즘/백준(Baekjoon)

[백준] 11559(파이썬) - Puyo Puyo

https://www.acmicpc.net/problem/11559 11559번: Puyo Puyo 총 12개의 줄에 필드의 정보가 주어지며, 각 줄에는 6개의 문자가 있다. 이때 .은 빈공간이고 .이 아닌것은 각각의 색깔의 뿌요를 나타낸다. R은 빨강, G는 초록, B는 파랑, P는 보라, Y는 노랑이다. www.acmicpc.net 이 문제는 구현 문제로 문제에서 주어진 대로 하나하나 차근차근 풀면 해결되는 문제였다. 어려운 알고리즘이나 논리는 생각하지 않아도 됐던 거 같다. 나는 4칸 이상일 때 뿌요들을 지워주는 함수 하나, 그리고 뿌요가 4개 이상이 뭉쳐서 사라진 뒤 중력에 의해 아래로 뿌요들을 내려주는 함수 하나, 그리고 뿌요들을 4개 이상인지 확인하기 위해 BFS를 사용한 함수 하나 이렇게 만..

2021.08.07 게시됨

자료구조 & 알고리즘/백준(Baekjoon)

[백준] 1806(파이썬) - 부분합

https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net 이 문제는 언뜻 보면 2중 for문으로 탐색하면 되는 거 아니야...?라고 생각할 수 있지만, 메모리와 시간제한을 보면 절대 그럴 수 없다. 이 문제는 투 포인터 문제로, 두개의 변수를 이용해서 인덱스로 활용해서 푸는 문제이다. 투 포인터인 점만 확인하면 비교적 쉽게 풀 수 있는 문제이다. #시간초과 때문에 2중 for문은 안되고.. import sys input = sys.stdi..

2021.08.05 게시됨

자료구조 & 알고리즘/백준(Baekjoon)

[백준] 2638(파이썬) - 치즈

https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 www.acmicpc.net 이 문제는 2636 치즈 문제와 비슷한 문제로, BFS를 이용해서 푸는 문제이다. 여기서 조건 중 가장자리의 치즈가 녹는다는 점은 2636번 문제와 비슷하지만 각 치즈 격자의 4 변 중 2 변 이상이 공기와 접촉해야 녹는다는 점을 고려해야 한다. 여기서 만약에 치즈가 있을 경우(배열 값이 1일경우) 에는 BFS가 진행되면 안 되므로 q라는 큐 구조에 좌표를 추가하지 않고, 치즈가 없을..

2021.08.04 게시됨

Language/Java & Kotlin

[자바/Java] 오버로딩(Overloading) 이란?

자바는 OOP 즉, 객체 지향 언어이다. OOP의 큰 장점이자 OOP에서 가장 중요한 개념 중 하나로는 다형성(Polymorphism)이 있다. 다형성은 각 요소들이 여러 가지 자료형으로 표현될 수 있다는 것을 말한다. 이번에는 자바에서 다형성을 띄고 있는 것들 중 '오버 로딩'에 대해서 정리해보려고 한다. 오버 로딩이란? 오버 로딩은 한 클래스 내에 같은 이름의 메서드를 여러 개 정의해서 사용하는 것을 의미한다. 메서드 오버 로딩도 같은 말이다. 오버로드는 말 그대로 한 곳에 여러 개를 과적하다, 많이 싣다 라는 의미를 가지고 있는데 하나의 메서드로 여러 기능을 구현하기 때문에 붙여진 이름이다. 오버 로딩의 조건은 아래와 같다. 메서드 이름이 같아야 하고 매개변수의 개수 또는 타입이 달라야 한다. 오버..

2021.08.03 게시됨