본문 바로가기

분류 전체보기137

[프로그래머스 - Java] N진수 게임 (2018 KAKAO BLIND RECRUITMENT) 문제 programmers.co.kr/learn/courses/30/lessons/17687 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr 설명 우선 10진수로 표현된 수를 n진법으로 변환시켜야 한다. (10진수 n진수 변환은 아래에서 설명) 변환된 수를 ArrayList에 차곡차곡 저장한다. 튜브 순서에 말할 수가 List에 없다면 현재 튜브 순서의 숫자를 진수 변환시켜 List에 저장하는 것을 반복하며 게임을 진행한다. 10진수로 N진수 구하기 1. List, Stack과 같은 자료구조 .. 2021. 5. 8.
[Java] 클래스 / 객체 / 인스턴스 / 클래스 변수 / 인스턴스 변수 / 지역변수 클래스 (Class) 연관되어 있는 변수와 메서드의 집합 객체를 만들어 내기 위한 설계도 또는 틀 객체 (Object) 클래스에 선언된 모양 그대로 생성된 실체 소프트웨어 세계에 구현할 대상 특징 클래스의 인스턴스(instance)라고도 부름 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖는다. OOP 관점에서 클래스 타입으로 선언되었을 때 객체라고 함 인스턴스 (instance) 설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체 즉, 객체를 소프트웨어에 실체화하면 그것을 인스턴스라고 부른다. 실체화된 인스턴스는 메모리에 할당된다. 특징 인스턴스는 객체에 포함된다고 볼 수 있다. OOP 관점에서 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 함 추상적인 개념과 구체적인 객체 사이의 관계.. 2021. 4. 28.
[Java] static / stack / heap / Garbage Collection Static? 정적(static)은 고정된이란 의미를 가지고 있습니다. Static이라는 키워드를 사용하여 Static변수와 Static메서드를 만들 수 있는데 다른 말로 정적 필드와 정적 메소드라고도 하며 이 둘을 합쳐 정적 멤버라고 합니다. (= 클래스 멤버) 정적 필드와 정적 메서드는객체(인스턴스)에 소속된 멤버가 아니라 클래스에 고정된 멤버입니다. 그렇기에 클래스 로더가 클래스를 로딩해서 메서드 메모리 영역에 적재할 때 클래스별로 관리됩니다. 따라서 클래스의 로딩이 끝나는 즉시 바로 사용할 수 있습니다. Static 키워드를 통해 생성된 정적 멤버들은 Heap영역이 아닌 Static영역에 할당됩니다. Static 영역에 할당된 메모리는 모든 객체가 공유하여 하나의 멤버를 어디서든지 참조할 수 있는.. 2021. 4. 28.
[Swift] 스위프트 프로그래밍 - Part2 - 9 : 구조체와 클래스 야곰님의 스위프트 프로그래밍 책으로 공부한 내용을 잊어버리지 않게 간단하게 정리한 글입니다. 관련 포스트 더보기 [Swift] 스위프트 프로그래밍 - Part1 - 1 : 스위프트? / 스위프트 장점 / 특징 / 명명 규칙 / 콘솔 로그 / 주석 [Swift] 스위프트 프로그래밍 - Part1 - 2 : 변수 / 상수 / 데이터 타입 기본 (Int, Bool, Float, Character, String, Any, AnyObject, nil) [Swift] 스위프트 프로그래밍 - Part1 - 3 - 1 : 데이터 타입 고급 (Tuple, Array, Dictionary, Set) [Swift] 스위프트 프로그래밍 - Part1 - 3 - 2 : 데이터 타입 고급(열거형 enum) [Swift] 스위프트.. 2021. 4. 21.
[백준 - Java] 17142번 : 연구소3 문제 www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net 설명 연구소1 문제와 비슷한 문제지만 조금은 다름. 기존 연구소 문제는 아래 포스트를 참고 [백준 - Java] 14502번 : 연구소 (삼성 SW 역량 테스트 기출 문제) 백트래킹으로 바이러스를 퍼뜨릴 수 있는 공간에 M개의 바이러스를 놓아 활성화시켜봄. M개의 바이러스를 활성화시켰다면 BFS로 바이러스를 퍼뜨림. 모든 빈칸에 바이러스를 퍼뜨렸다면 그때까지 걸린 시간 Math.min()으로 min 변수에 저장. .. 2021. 4. 21.
[백준 - Java] 15684번 : 사다리 타기 문제 www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net 설명 자잘한 실수도 많이 하고, 필요 없는 map을 만든다 거나, class로 좌표를 저장하고 ArrayList에 넣었다 뺐다, ArrayList를 복사하던가 삽질을 겁나 많이 했음. 막상 풀고나니 별거 없었고, 나는 4차원 배열까지 써서 해결했는데, 2차원 배열만 썼어도 됨... 삼성 SW역량테스트 기출문제인데, 나는 아마 주어진 3시간 동안 이 문제 계속 쩔쩔매다가 왔을 듯;;;;ㅜㅜ아웅ㅇ 열 받아!.. 2021. 4. 18.
[백준 - Java] 14890번 : 경사로 문제 www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 설명 문제의 조건대로 구현하면 되는 문제이다. 하지만 조건을 이것저것 맞추다 보니 빼먹기도 하고, 경사로가 꼬이기도 해서 시간이 꽤나 걸렸던 문제다ㅠㅠ * 경사로를 놓는 조건 길을 지나갈 수 있으려면 길에 속한 모든 칸의 높이가 모두 같아야 한다. 또는, 경사로를 놓아서 지나갈 수 있는 길을 만들 수 있다. 경사로는 높이가 항상 1이며, 길이는 L이다. 또, 개수는 매우 많아 부족할 일이 없다. 경사로는 낮은 칸과 높은 칸을 연.. 2021. 4. 16.
[백준 - Java] 1238번 : 파티 문제 www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 설명 다익스트라 알고리즘을 이용해 구현하면 된다. 📌 더 자세히 알고 싶다면 아래 포스팅을 참고해주세요 [Java] 다익스트라 (Dijkstra) 최단 경로 알고리즘 하지만 각 구현 방식에 따라 걸리는 시간과 메모리가 천차만별이다. 1. 인접 행렬로 정점과 간선을 표현하고, 기본 다익스트라 알고리즘을 이용해 구현 (2992, 2360 ms) N개의 마을에서 X까지 N번, X에.. 2021. 4. 13.
[백준 - Java] 13460번 : 구슬 탈출 2 (삼성SW역량테스트 기출 문제) 문제 www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 설명 엄청나게 시간이 오래 걸렸던 문제... 막상 풀고 나니 왜 진즉에 생각 못했을까 싶고... 아무튼 이 문제는 빨간 구슬과 파란 구슬이 동시에 움직이기 때문에 따로 생각하면 안 되고 같이 생각해야 한다. 따라서 구슬의 위치를 담는 클래스도 빨간, 파랑 구슬의 위치 둘 다 가지게 만들었다. 또한 BFS를 수행하며 최단 거리로 탈출해야 하는데, 이때 방문 .. 2021. 4. 11.
[Swift] 스위프트 프로그래밍 - Part1 - 6 : 흐름 제어 야곰님의 스위프트 프로그래밍 책으로 공부한 내용을 잊어버리지 않게 간단하게 정리한 글입니다. 관련 포스트 더보기 [Swift] 스위프트 프로그래밍 - Part1 - 1 : 스위프트? / 스위프트 장점 / 특징 / 명명 규칙 / 콘솔 로그 / 주석 [Swift] 스위프트 프로그래밍 - Part1 - 2 : 변수 / 상수 / 데이터 타입 기본 (Int, Bool, Float, Character, String, Any, AnyObject, nil) [Swift] 스위프트 프로그래밍 - Part1 - 3 - 1 : 데이터 타입 고급 (Tuple, Array, Dictionary, Set) [Swift] 스위프트 프로그래밍 - Part1 - 3 - 2 : 데이터 타입 고급(열거형 enum) [Swift] 스위프트.. 2021. 4. 7.
반응형