분류 전체보기 645

[파이썬, Java] 2493. 탑

문제 KOI 통신연구소는 레이저를 이용한 새로운 비밀 통신 시스템 개발을 위한 실험을 하고 있다. 실험을 위하여 일직선 위에 N개의 높이가 서로 다른 탑을 수평 직선의 왼쪽부터 오른쪽 방향으로 차례로 세우고, 각 탑의 꼭대기에 레이저 송신기를 설치하였다. 모든 탑의 레이저 송신기는 레이저 신호를 지표면과 평행하게 수평 직선의 왼쪽 방향으로 발사하고, 탑의 기둥 모두에는 레이저 신호를 수신하는 장치가 설치되어 있다. 하나의 탑에서 발사된 레이저 신호는 가장 먼저 만나는 단 하나의 탑에서만 수신이 가능하다. 예를 들어 높이가 6, 9, 5, 7, 4인 다섯 개의 탑이 수평 직선에 일렬로 서 있고, 모든 탑에서는 주어진 탑 순서의 반대 방향(왼쪽 방향)으로 동시에 레이저 신호를 발사한다고 하자. 그러면, 높이..

coding test 2021.10.19

[파이썬, Java] 16928. 뱀과 사다리 게임

문제 뱀과 사다리 게임을 즐겨 하는 큐브러버는 어느 날 궁금한 점이 생겼다. 주사위를 조작해 내가 원하는 수가 나오게 만들 수 있다면, 최소 몇 번만에 도착점에 도착할 수 있을까? 게임은 정육면체 주사위를 사용하며, 주사위의 각 면에는 1부터 6까지 수가 하나씩 적혀있다. 게임은 크기가 10×10이고, 총 100개의 칸으로 나누어져 있는 보드판에서 진행된다. 보드판에는 1부터 100까지 수가 하나씩 순서대로 적혀져 있다. 플레이어는 주사위를 굴려 나온 수만큼 이동해야 한다. 예를 들어, 플레이어가 i번 칸에 있고, 주사위를 굴려 나온 수가 4라면, i+4번 칸으로 이동해야 한다. 만약 주사위를 굴린 결과가 100번 칸을 넘어간다면 이동할 수 없다. 도착한 칸이 사다리면, 사다리를 타고 위로 올라간다. 뱀..

coding test 2021.10.19

[파이썬, Java] 11659. 구간 합 구하기 4

문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. 출력 총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다. 제한 1 ≤ N ≤ 100,000 1 ≤ M ≤ 100,000 1 ≤ i ≤ j ≤ N 예제 입력 1 5 3 5 4 3 2 1 1 3 2 4 5 5 예제 출력 1 12 9 1 🎀 나의 풀이 import java.io.*; import java.util.StringTokenizer; class Main { pub..

coding test 2021.10.18

[파이썬, Java] 2661. 좋은수열

문제 숫자 1, 2, 3으로만 이루어지는 수열이 있다. 임의의 길이의 인접한 두 개의 부분 수열이 동일한 것이 있으면, 그 수열을 나쁜 수열이라고 부른다. 그렇지 않은 수열은 좋은 수열이다. 다음은 나쁜 수열의 예이다. 33 32121323 123123213 다음은 좋은 수열의 예이다. 2 32 32123 1232123 길이가 N인 좋은 수열들을 N자리의 정수로 보아 그중 가장 작은 수를 나타내는 수열을 구하는 프로그램을 작성하라. 예를 들면, 1213121과 2123212는 모두 좋은 수열이지만 그 중에서 작은 수를 나타내는 수열은 1213121이다. 입력 입력은 숫자 N하나로 이루어진다. N은 1 이상 80 이하이다. 출력 첫 번째 줄에 1, 2, 3으로만 이루어져 있는 길이가 N인 좋은 수열들 중에..

coding test 2021.10.18

문자열 비교

# 백준 '2661. 좋은수열' 문제 중에서 for i in range(1, (idx//2)+1) : if s[-i:] == s[-2*i : -i] : return -1 뒤에서부터 길이가 i인 두 문자열을 비교 # 백준 '2661. 좋은수열' 문제 중에서 def check(s) : for i in range(1, (len(s)//2)+1) : leng=i# 길이 start=0 start2=start+i for j in range(len(s)-(leng*2)+1) :# 시작 인덱스 증가 if s[start+j : start+j+leng] == s[start2+j : start2+j+leng] : return False return True 1부터 문자열의 절반까지 반복하며 두 문자열을 비교 start와 s..

[MySQL] 헤비 유저가 소유한 장소

문제 설명 PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블입니다. PLACES 테이블의 구조는 다음과 같으며 ID, NAME, HOST_ID는 각각 공간의 아이디, 이름, 공간을 소유한 유저의 아이디를 나타냅니다. ID는 기본키입니다. NAME TYPE ID INT NAME VARCHAR HOST_ID INT 문제 이 서비스에서는 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부릅니다. 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성해주세요. 예시 예를 들어, PLACES 테이블이 다음과 같다면 ID NAME HOST_ID 4431977 BOUTIQUE STAYS - Somerset Terrace, Pet Friendly 760849 5194998 B..

coding test/SQL 2021.10.16

[파이썬, Java] 행렬 테두리 회전하기

문제 설명 rows x columns 크기인 행렬이 있습니다. 행렬에는 1부터 rows x columns까지의 숫자가 한 줄씩 순서대로 적혀있습니다. 이 행렬에서 직사각형 모양의 범위를 여러 번 선택해, 테두리 부분에 있는 숫자들을 시계방향으로 회전시키려 합니다. 각 회전은 (x1, y1, x2, y2)인 정수 4개로 표현하며, 그 의미는 다음과 같습니다. x1 행 y1 열부터 x2 행 y2 열까지의 영역에 해당하는 직사각형에서 테두리에 있는 숫자들을 한 칸씩 시계방향으로 회전합니다. 다음은 6 x 6 크기 행렬의 예시입니다. 이 행렬에 (2, 2, 5, 4) 회전을 적용하면, 아래 그림과 같이 2행 2열부터 5행 4열까지 영역의 테두리가 시계방향으로 회전합니다. 이때, 중앙의 15와 21이 있는 영역은..

coding test 2021.10.13

[파이썬, Java] 로또의 최고 순위와 최저 순위

문제 설명 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호가 일치 3 4개 번호가 일치 4 3개 번호가 일치 5 2개 번호가 일치 6(낙첨) 그 외 로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다. 알아볼 수 없는 번호를 0으로 표기하기로 하고, 민우가 구매한 로또 번호 6개가 44, 1, 0, 0, 31 25라고 가정해보겠습니..

coding test 2021.10.13

[Error] spelevaluationexception

EL1008E: Property or field 'name' cannot be found on object of type 'Bulletin.Board.domain.posts.User' - maybe not public or not valid? 에러가 발생한 일부 소스 코드 name부터 에러가 생기니 밑에 속성들도 안 된다. User Entity에서 getter가 없어서 생긴 에러 모든 멤버변수의 getter를 추가한 후 해결:) 덕분에 Thymeleaf가 어떻게 동작하는지 알았다. 에러는 Thymeleaf에서 생겼지만, Entity 쪽에서 해결해서 카테고리 분류를 Spring으로 했다. 참고 👇 https://stackoverflow.com/questions/57369016/el1008e-property..

stream

stream은 배열이나 컬렉션 등을 모두 같은 방식으로 다룰 수 있게 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드들을 정의해 놓았다.  🧡 stream의 특징1. 데이터 소스를 변경하지 않는다.2. 일회용이다.3. 작업을 내부 반복으로 처리한다.내부 반복은 반복문을 메서드의 내부에 숨길 수 있는 것이다.forEach()는 매개변수에 대입된 람다식을 데이터 소스의 모든 요소에 적용  🦔 stream  생성Stream Collection.stream()컬렉션의 스트림 생성T는 Integer 또는 String 같은 타입Collection에는 list, set 같은 컬렉션 IntStream IntStream.of(int... values)IntStream IntStream.of(int..

JAVA 2021.10.13