본문 바로가기

분류 전체보기48

[JAVA] 백준 11559 뿌요뿌요 Puyo Puyo https://www.acmicpc.net/problem/11559 11559번: Puyo Puyo 총 12개의 줄에 필드의 정보가 주어지며, 각 줄에는 6개의 문자가 있다. 이때 .은 빈공간이고 .이 아닌것은 각각의 색깔의 뿌요를 나타낸다. R은 빨강, G는 초록, B는 파랑, P는 보라, Y는 노랑이다. www.acmicpc.net 1. 접근방법 1. bfs를 통해서 블럭이 4개가 인접해있는지 판단하고 맞으면 부쉬고 내려줘야겠다 2. 내리는 함수 down, 확인함수 및 파괴 check를 구현하면 되겠다. 2. 어려웠던 부분(실수) 1. 색을 총 5개 입력받아야 하는데 4개만 받아서 로직은 맞지만 틀려서 뭐때문인지 찾는게 힘들었다. 맞왜틀 2. 연쇄 폭발 횟수와 총 폭발 횟수를 혼돈했다. ex)입력받은.. 2022. 4. 6.
[JAVA] 백준 12100번 2048 (Easy) https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 문제접근방법 1. 5번을 어떤방식으로 만들어서 전해줄것인가 -> 순열, 조합, 부분집합으로 도저히 생각이 안나서 5중포문 사용했다. 2. 그 뒤로는 게임방식을 이해하면서 코드를 짜면서 자잘한 오류들을 수정함 3. 상하, 좌우 묶어서 생각하니까 훨씬 편했다. 도움된테스트케이스 1번 3 2 0 2 0 2 0 2 0 2 답은 4가 나와야 하는데 8이 나와서 이부분에서 잘못된.. 2022. 3. 31.
[JAVA] 백준 1929 소수 구하기 https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 클래스2++도전기 나만의 문제접근방법 1. 소수는 약수가 1과 그수 자신인 숫자라고 알고 있었다. 2. 시작이 3 끝이 16이면 3부터 반복문을통해 일차원적으로 소수인지 아닌지 검토하는 방식 -> 시간초과 메모리간당간당 3. 뭔가 알고리즘이 있을것같아 찾아보니 에라토스테네스의 체라는 알고리즘을 사용하거나 더 뛰어난 알고리즘을 사용해야했었다. 4. 간단히 공부 후 코드를 작성해 제출했음 어려웠던 점 출력해줄때 0,1을 예외처리해주.. 2022. 3. 28.
[JAVA] 17404 RGB거리 2 https://www.acmicpc.net/problem/17404 17404번: RGB거리 2 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 접근방법 1) 문제를 읽고 바로 dp라고 생각이 들었다 1행이 2행에 영향이 있고 ... N행까지 영향을 주니까 2) 첫번째집을 R G B 각각 선택했을때 N행에서 만약 첫행 선택한 색이 R을 선택했다면 마지막행 R은 최솟값 선택에서 제외 3) 아래 그림을 그리면서 아이디어 획득함 이전 행에서 현재 색을 제외하고 최소값을 구해준다. 예를 들면 현재 레드2행 이라면 1행.. 2022. 3. 27.
[Java] 백준 2164 카드2 https://www.acmicpc.net/problem/2164 문제바로가기 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 백준 스트릭 2++ 100% 도전기 문제접근방법 1) 카드를 세워서 처음 맨위카드는 버리고 그다음 카드는 맨뒤로 보낸다라는 글을 읽고 앞뒤 => 큐를 써야겠다 2) 반복문을 통해 뽑아 버리고 맨뒤로 보내고를 반복했다. 느낀점 크게 어렵지 않은데 다른사람들이 푼 숏코딩을 보니 더좋은 방법이 많아서 최적화를 더할수 있을것 같았다. import java.io.*; import java.ut.. 2022. 3. 27.
[JAVA] 백준 4153 직각삼각형 https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 2++ 클래스 도전기 접근방식 1. 문제설명과 그림을 통해 피타고라스 정리를 통해 직각삼각형을 유추한다고 판단 2. 0,0,0 들어오면 끝내주고 배열로 받아드려 정렬하고 가장큰수를 대각선으로 잡아서 피타고라스 정리 3. 값이 서로 같으면 직각삼각형 아니면 직각삼각형 아님으로 판단 느낀점 3만개의 입력이 들어오는데 이부분을 system.out.println으로 하면 시간을 많으 잡아 먹을것 같다 그래서 버퍼드라이터와.. 2022. 3. 24.
[JAVA] 2206 벽 부수고 이동하기 https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 접근방법 1. 기본적으로 최단거리 찾기 문제라 바로 BFS가 떠올랐다. 2. BFS 돌릴때 모든 맵의 벽을 모두 한번씩 지워보며 가면 정답이 나오겠네 시간초과 (맞왜틀?) 3. 그럼 가는길에 부술수있으면 부수고 아니면 그냥 갈길 가면서 BFS 타보자 시간초과,메모리 (맞왜틀?) 4. 갈때 부순경우 안부순경우 모두 체크해서 큐에 넣자 (이게맞네?) 느낀점 고정관념을 버려야 .. 2022. 3. 24.
[JAVA] 2805 나무 자르기 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 클래스 2 달성 2일차 왜인지 모르겠지만 2가 달성이 돼있었다. 2++문제까지 모두풀어야 한다고 생각했는데 클래스 2 문제 필수문제만 풀면 인정을 해주는 모양이다. 그래서 2++ 문제까지 모두 푸는것으로 목표를 변경하기로 했다. 접근방식 1. 처음 문제를 풀고 읽고 이분탐색인지 눈치 채지못했다. 그래서 나무의 높이가 12 8 15 20 이렇게 4가지라면 톱날.. 2022. 3. 23.
[JAVA] 백준 10773 제로 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net https://solved.ac/search?query=in_class:2 클래스 2 문제집 모음 solved.ac - 검색 solved.ac 백준 클래스 2++ 도전기 매번 추천 문제나 골드문제를 골라서 풀었는데 solved.ac 사이트를 구경하다가 클래스를 발견해서 단계를 올려보고자 하루 한번 클래스2 문제를 포스팅하기로 결정했습니다 ^^; 달성할때까지 달려보.. 2022. 3. 21.
CSS 선택자 CSS 규칙 전용 타겟이 되는 선택자 8가지 소개 핵심요약 일반 선택자 1~4번 일반 선택자의 우선순위 전체 선택자 < 타입 선택자 < 클래스 선택자 < ID 선택자 복합 선택자 5~8번 1. 전체 선택자 *{ background: red; color: balck; }html 문서 내 모든 엘리먼트 선택해 스타일 규칙 적용 주로 모든 속성을 선택해 패딩이나 마진을 초기화 하는 용도 2. 타입 선택자 div, p{ font-weight : bold; padding : 11px; color : blue; } div{ background: red; color: balck; } p{ padding : 10px }예시와 같이 태그명을 사용해 스타일을 적용함 여러 엘리먼트 동시사용 가능함 같은 엘리먼트에 여러가지 .. 2022. 3. 20.
CSS 간단정리 개요 웹 페이지의 디자인을 담당하는 CSS 웹 페이지를 표현하기 위한 스타일 규칙을 모아 놓은 문서 css를 사용하는 이유는 웹 문서의 내용과 상관없이 디자인만 바꿀 수 있기 때문 규칙 선택자와 선언 두 부분으로 구성 선택자는 스타일이 적용되는 엘리먼트 선언 부분에서는 선택자에 적용될 스타일 작성 속성과 값으로 이루어짐 여러속성에 값을 지정할때는 속성별로 ; 으로 구분 여러 선택자를 적용할때 ,(콤마)사용해 나열 ex) .css(선택자){ padding : 10px; color; #000;} {}->선언블록 padding -> 속성 10px -> 값 여러선택자사용 .css(선택자),div, ··· { padding : 10px; color; #000;}css 적용방법 외부 스타일 시트 적용 html파일내.. 2022. 3. 20.
[Java] 백준 1300 K번째 수 https://www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net 접근방법 이분탐색이라고 생각을 바로 하지는 못했다. 처음에는 k번째 인덱스 i,j를 구해서 값을 바로 출력해주는 방식을 생각했다 하지만 A배열, B배열로 나뉘고 각 인덱스는 1부터 시작하고 B배열은 값을 정렬하기 때문에 바로 인덱스를 구한다는 생각은 틀린 생각이었다. 왜냐하면 이미 섞여있는상태에서 인덱스를 구한다는것은 말이 되지 않기 때문이다. 두 번째 방법으로는 n.. 2022. 3. 19.