본문 바로가기

전체 글62

[CSS] 플렉스(Flex) *작성자는 공부 중인 학생으로 잘못 된 정보가 있을 수 있음을 알려드립니다. CSS에서 레이아웃을 배치하는데 사용되는 대표적인 개념은Flex와 Grid이다. 두 개념의 가장 큰 차이점은 1차원(Flex)이냐 2차원(Grid)이냐이다.Flex는 행 또는 열이 하나의 축이 되어 축을 기준으로 배치되고,Grid는 행과 열을 동시에 바둑판 처럼 배치한다. 이번 게시물에서는 플렉스(Flex)의 개념에 대해 알아보자. 1. Flex의 구성먼저 Flex개념을 이해하기 위해서는 Flex가 어떻게 구성되는지 알아야 한다.Flex는 Flex Container와 Flex Item으로 구성된다. 플렉스 컨테이너(Flex Container) : 자식 요소들을 정렬하기 위한 부모 요소이다.플렉스 아이템(Flex Item) : 플.. 2024. 6. 20.
[Java] 18115번. 카드 놓기 1. 문제 분석손에 있는 카드를 특정 행위로 내려놓고 그 카드의 결과와 행위를 알려주고 원래 카드의 순서를 추측하는 문제이다. 행할 수 있는 동작은 세가지 이다.1. 제일 위의 카드 1장을 내려놓는다.2. 위에서 두번째 카드를 바닥에 내려놓는다. 카드가 2장 이상일 때만 사용 가능.3. 제일 밑에 있는 카드를 바닥에 내려놓는다. 카드가 2장 이상일 때만 사용 가능. 동작이 끝나면 카드가 위에서부터 차례대로 1,2,3,4,5, ..., N으로 정렬된다.어떤 동작을 했는지 주어지고, 처음 카드의 순서를 계산하면 된다. 쉽게 말하면 행했던 행동들을 정반대로 하면 된다. 가장 마지막에 했던 행동부터 차례대로 원상복귀 시켜놓으면 된다. 예제를 통해서 보자. 예제)5장의 카드에 차례대로 2,3,3,2,1번 행동을 .. 2024. 6. 19.
[Java] 11003번. 최솟값 찾기 1. 문제 분석N개의 크기를 가진 정수 배열에서, L크기의 범위 안에서의 최솟값을 찾는 문제이다.이렇게 말하면 이해가 어렵기 때문에 바로 예제를 보자. 예제)크기(N)가 12인 정수 배열 [1, 5, 2, 3, 6, 2, 3, 7, 3, 5, 2, 6]일 때,범위(L)가 3인 배열에서의 최솟값이다. 인덱스가 0~2 인 값들의 최솟값,인덱스가 1~3 인 값들의 최솟값,인덱스가 2~4 인 값들의 최솟값,...인덱스가 10~12 인 값들의 최솟값을 배열로 구하면 된다. 이는 크기가 3인 배열을 이용해서 구할 수 있다. 위의 그림은 배열 [1, 5, 2, 3, 6, 2, 3, 7, 3, 5, 2, 6]에 대한 예제이다.가장 먼저 들어온 값은 가장 먼저 나간다. ❗ 중요 ❗여기서 배열에 들어온 수 들을 살고 죽는.. 2024. 6. 19.
[Java] 5430번. AC 1. 문제 분석이 문제는 배열을 입력받고, 입력한 명령어를 실행한 후 결과 배열을 출력하는 문제이다. 이 때 명령어는 두가지 종류이다.R : 배열을 뒤집는다.D : 가장 앞의 요소를 버린다. 이 때, 배열에는 100,000만큼의 수가 들어갈 수 있고, 명령어(R, D)는 최대 100,000개 이다. 백준 문제를 풀면서 은근 '시간초과'를 많이 경험했기에실제로 R명령어에서 모든 배열을 실제로 뒤집으면 시간초과가 날 것이다 라는 직감이 들었다. 어차피 삭제는 가장 앞에서만 되고,뒤집으면 가장 뒤에 있던 요소가 가장 앞으로 오는 것이므로R이 나오면 뒤를 삭제하는 것으로 바꾸도록 구현하였다. 이 때, 뒤를 삭제하고 있는데 R이 또 나오면 앞을 삭제해야 하므로on/off 버튼처럼 앞/뒤를 표시할 수 있는 bool.. 2024. 6. 19.
[Java] 1021번. 회전하는 큐 1. 문제 분석초기화된 큐에서 특정한 수를 차례대로 뽑아내기 위해 총 몇번의 큐를 움직여야 하는가에 대한 문제이다. 우리는 큐에서 특정한 값을 뽑아내기 위해서 딱 세가지 행동만 할 수 있다.(1) 첫 번째 원소를 뽑아 낸다.(2) 왼쪽으로 한 칸 씩 이동시키고, 가장 앞에 있는 수는 가장 뒤로 이동시킨다.(3) 오른쪽으로 한 칸 씩 이동시키고, 가장 뒤에 있는 수는 가장 앞으로 이동시킨다. 이 때 문제에서 2,3번 행동을 몇번 했는가를 계산해야 한다. 백준 문제에서 제시한 예제를 보자. 예제 1)큐의 크기는 10이고 3개의 수를 뽑아내려고 하는데, 이 때 1,2,3을 뽑아내고자 한다. 가장 위에 줄에서 보면 크기 10인 큐를 1-10으로 초기화 한다.1이 가장 앞에 있는 상태이므로 1을 뽑기 위해서는 1.. 2024. 6. 19.
[Java] 10866번. 덱 1. 문제 분석이전에, 큐와 스택을 구현할 때는 Linked List를 이용하여 구현하였다. 이번에 구현할 deque도 Linked List를 이용해 구현할 수 있지만,deque는방향이 정방향/역방향 두 방향이기 때문에 Double Linked List로 구현해야겠다는 생각이 들었다. deque를 양방향 링크드 리스트(Double Linked List)로 구현하면 다음과 같은 차이점이 있다. 장점각 노드가 이전 노드와 다음 노드를 모두 참조하므로, 앞과 뒤 양쪽에서 삽입과 삭제가 용이하다.덱의 앞과 뒤에서 O(1)시간에 삽입과 삭제를 할 수 있다. 단점양방향 포인터를 관리해야 하므로 구현이 더 복잡하다.각 노드가 두 개의 포인터를 가지고 있으므로 메모리가 더 많이 사용된다. 2. 구현Deque 클래스는 .. 2024. 6. 19.
[CSS] 유동속성(float) *작성자는 공부 중인 학생으로 잘못 된 정보가 있을 수 있음을 알려드립니다. 속성값으로 left, right, none, inherit가 있다.inherit는 많이 사용하지 않기 때문에 inherit를 제외하고 살펴보자. 말로 하면 이해가 어려울 수 있고 예제로 보면 쉽기 때문에이번 게시물에서는 예제를 중심으로 설명할 예정이다. right/leftright와 left의 차이는 오른쪽에 띄우느냐, 왼쪽에 띄우느냐의 차이이다.img { float: right;} nonenone은 이미지가 텍스트의 한 줄을 차지한다. default값이다.img { float: none;}float속성은 이렇게 이미지를 배치할 때도 많이 쓰지만최근에는 태그나 리스트에서 자주 사용한다. 왜냐하면, div태그는 따로 설정해주지.. 2024. 6. 18.
[JAVA] Queue를 LinkedList/ArrayDeque로 구현했을 때 차이점 *작성자는 공부 중인 학생으로 잘못 된 정보가 있을 수 있음을 알려드립니다. Queue와 관련된 문제들의 풀이를 보면서Queue를 정의할 때 두가지 방법으로 나뉘는 것을 발견했다. //방법1 : LinkedList 이용Queue queue = new LinkedList();//방법2 : ArrayDeque 이용Queue queue = new ArrayDeque(); 위 두가지 방법의 차이점은 무엇일까?그리고 왜 Queue queue = new Queue();로 생성할 수 없는 것일까? 1. new Queue()를 사용할 수 없는 이유결론부터 말하자면 Queue는 클래스가 아닌 인터페이스이기 때문이다. 인터페이스는 메서드의 선언만 포함하고 실제 구현은 포함하지 않는다.public interface Anim.. 2024. 6. 16.
[CSS] 위치 속성 *작성자는 공부 중인 학생으로 잘못 된 정보가 있을 수 있음을 알려드립니다. 지금까지 요소의 크기 조절이나 정렬, 스타일 변경 등에 대해서 배웠는데웹 페이지에서 요소의 위치를 지정하는 법을 배우지 않았다. 그래서 이번에는 위치 속성에 대해 알아보자 1. 절대 위치와 상대 위치절대 위치웹 페이지를 기준으로 정확히 어느 위치에 위치하는지를 의미한다. 상대 위치모든 요소는 원래 자신의 위치를 가지고 있는데, 이 위치를 기준으로 어느 곳에 위치하는지를 의미한다. 2. position 속성static, absolute, fixed, relative, sticky의 값을 가질 수 있다.여기서 static, relative는 상대위치이고 absolute, fixed는 절대위치이다. sticky는 상대/절대 혼합이다... 2024. 6. 15.