본문 바로가기

전체 글

(72)
SQL- 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 가장 조회수가 높은 물건의 이미지 경로를 뽑아내는 문제이다.조회수는 USED_GOODS_BOARD 테이블에서 알 수 있기 때문에 JOIN을 시도하기 전부터 USED_GOODS_BOARD테이블에서 가장 조회수 높은 물건을 걸러서 그것만 JOIN을 맺어주면 될 것이다.https://school.programmers.co.kr/learn/courses/30/lessons/164671 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr SELECT CONCAT('/home/grep/src/',CONCAT(B.BOARD_ID,CONCAT('/',CONCAT(F.FILE_ID, CONCAT(F.FILE_NAME,F.F..
SQL- 조건에 부합하는 중고거래 상태 조회하기 Case 문을 사용해 STATUS 컬럼의 상태에 따른 결과값을 다르게 해주고,TO_CHAR을 이용해 DATE 형식의 CREATED_DATE를 String으로 변환해 2022-10-05의 게시물을 찾아주면 되는 문제이다.https://school.programmers.co.kr/learn/courses/30/lessons/164672?language=oracle 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr -- 코드를 입력하세요SELECT BOARD_ID, WRITER_ID, TITLE, PRICE,CASE WHEN STATUS = 'SALE' THEN '판매중' WHEN STATUS = '..
백준(1195번) - 킥다운(Python) (브루트포스) 파이썬 적응기 실버 1문제다...몇 시간 동안 고민을 했던 문제였는데 개인적으로는 어이가 없었던 문제였다. 내가 세운 조건은 다음과 같다1. 짧은 기어를 기준으로 긴 기어를 오른쪽으로 이동시키며 맞물림을 확인한다.2. 긴 기어를 기준으로 짧은 기어를 오른쪽으로 이동시키며 맞물림을 확인한다.3. 맞물린다는 조건은 이(2)끼리 충돌하지 않으며, 하나라도 홈(1)과 이(2)가 만나야 한다. 일단 1번과 2번의 조건에 대해서 설명을 하자면 원래는 긴 기어를 기준으로 두고 짧은 기어를 왼쪽 오른쪽으로 이동시켜 보면서 맞물림을 확인해 보는 것이 정상이다.하지만, 나는 기준을 달리하고 움직이는 방향을 동일하게 해 짧은 기어를 양방향으로 움직이는 효과를 낸 것이다. 내가 몇 시간 동안 고민했던 이유가 3번 조건에 있었..
백준(7568번) - 덩치(Python) (브루트포스) 클래스와 그 클래스를 이용해 배열을 만드는 것을 실습해 보기 위해 선정한 문제였다. 문제에 나와있는 조건만 따져준 채로 2중 for문을 통해 비교하면 되기에 문제 설명이 필요한가 싶다. 처음에 다들 1등으로 시작하고, 자신보다 몸무게 키가 월등한 자가 있다면 얌전히 자신의 등수를 +1 해주면 된다.https://www.acmicpc.net/problem/7568 import sysclass person: def __init__(self, weight:int, high:int): self.weight = weight self.high = high self.rank = 1n = int(sys.stdin.readline().rstrip()) #개행문자까지 같이 받아서 rstrip 필수lane = []f..
백준(1193번) - 분수찾기(Python) (구현) 파이썬 문법도 익힐 겸 실버 5 문제이지만 시도해 봤다. 지그재그로 훑고 내려가는 경로를 라인이라고 한다면지그재그로 한 칸씩 내려갈 때마다 라인의 길이가 1개씩 늘어나게 된다. 이것만 눈치챘다면 쉽게 풀어나갈 수 있을 것 같다. 첫 번째 라인(1개) = 1/1 (방향 두 번째 라인(2개) = 1/2 2/1 (방향 >)세 번째 라인(3개) = 3/1 2/2 1/3 (방향 규칙을 보면 분모가 제일 큰 부분부터 보자면 분모는 1씩 줄면서 분자는 1씩 증가할 텐데여기서 알 수 있는 점은 주어진 숫자가 몇 번째 라인(L)의 몇 번째 숫자(N)인지 알게 된다면 분수를 구할 수 있다는 점이다.이를 수식으로 나타내자면 (L-N) / (N+1) {N이 0부터 시작한다는 조건} 이런 식으로 나타낼 수 있으며, 지그재그..
백준(2987번) - 사과나무(Java) (구현) 딱 두 가지 공식을 사용하면 되는 문제이다.세 꼭짓점으로 삼각형의 넓이를 구할 수 있는 과 해당 좌표가 삼각형 안에 포함되어 있는 것을 확인하기 위한더보기벡터 크로스곱을 이용한 점-삼각형 포함 여부 판별법1. 주요 아이디어삼각형의 세 변을 기준으로 주어진 점이:삼각형의 세 변 각각에 대해 같은 방향에 있으면, 점은 삼각형 안에 속합니다.방향은 벡터 크로스곱의 부호로 확인합니다.2. 벡터 크로스곱 정의벡터 AB와 AC의 크로스곱은 다음과 같습니다:Cross(AB,AC)=(Bx−Ax)⋅(Cy−Ay)−(By−Ay)⋅(Cx−Ax)크로스곱의 결과값의 부호는 다음을 의미합니다:>0: 반시계 방향: 시계 방향=0: 같은 직선 상에 있음3. 점이 삼각형 안에 있는지 판별하기삼각형의 세 꼭짓점을 A(x1,y1), B(x..
백준(1987번) - 알파벳(Java) (그래프 이론) 2년 전 이제 막 골드에 입성했을 때, 실패했던 문제에게 복수했다.일반 DFS는 들렸던 좌표를 board에 표시해 못 가게 막지만, 이 문제에서는 들렸던 알파벳은 두 번 다시 못 가는 특성이 있기 때문에 블록의 좌표가 아닌 알파벳을 사용했는 지를 체크 해주면 자동적으로 들렸던 블록에 다시 접근하지 않는 효과가 생긴다. 이 부분만 다르다는 것만 인지하고 DFS를 진행해 주면 된다.https://www.acmicpc.net/problem/1987 import java.util.*;import java.io.*;public class Main{ static boolean[] alpha; //알파벳 사용 여부 따로 해당좌표 방문 여부 안 따져도 될 듯 static int ans, r, c; static char..
백준(17215번) - 볼링 점수 계산(Java) (구현) 참 부끄럽지만... 볼링을 쳐본 적이 없어서 룰을 아무리 읽어도 이해가 안 돼서 풀어내지 못했다.바로 전에 푼 야구랑 달리 점수 매기는 룰이 참 복잡하다 느꼈다...스페어를 치면 다음 한 번의 기회동안 쓰러뜨린 볼링핀의 개수만큼 추가점수를 얻게 된다.스트라이크를 치면 다음 두 번의 기회동안 쓰러뜨린 볼링핀의 개수만큼 추가점수를  얻게 된다.특히 이 두 규칙을 이해 못 해서 풀어내지 못했다... 단순히 스페어 / 스트라이크를 하면 다음 한 / 두 번의 점수가 2배가 된다.로 이해했는데... 후반에 들어서 설마 싶었는데 누구에게 물어볼 수도 없고 룰을 완벽 숙지 못한 상태로 작성한 코드가 1번 테스트케이스가 150점이 나와버려 이게 맞나...?라는 상태로 딜레마에 빠져  GPT에게 코드 작성해 달라고 하기..