Learn From Failure

고정 헤더 영역

글 제목

메뉴 레이어

Learn From Failure

메뉴 리스트

  • tag
  • 분류 전체보기 (112)
    • Algorithm (91)
    • NestJS (2)
    • Java (6)
    • Spring (8)
    • AWS (1)
    • DBMS (2)

검색 레이어

Learn From Failure

검색 영역

컨텐츠 검색

Algorithm

  • 25206. 너의 평점은

    2025.03.09 by aeongiii

  • 1244. 스위치 켜고 끄기

    2025.03.08 by aeongiii

  • 1463. 1로 만들기

    2025.02.25 by aeongiii

  • [다른 방법으로 풀기] 2776. 암기왕

    2025.02.24 by aeongiii

  • 15649. N과 M(1)

    2025.02.23 by aeongiii

  • 25178. 두라무리 휴지

    2025.02.23 by aeongiii

  • 10610. 30

    2025.02.22 by aeongiii

  • 1051. 숫자 정사각형

    2025.02.21 by aeongiii

25206. 너의 평점은

1. 문제 분석     1) 20줄에 걸쳐 과목명 + 학점 + 등급이 공백으로 구분되어 주어질 때,     전공과목별 학점 X 과목평점의 합을 학점의 총합으로 나눈 값을 구한다. 2. 제약 조건     1) 1     2)  3. 최초 의사결정     0) 등급에 따른 과목평점을 해시맵에 저장해둔다.     1) for문을 20번 돌려서 각 과목명+학점+등급을 받는다.     2) 등급을 확인하여 과목평점을 구한다.         - P인 과목은 continue         - F인 과목은 계산함     3) 학점*과목평점의 총합 & 학점의 총합을 구한다.     4) 20줄이 모두 끝났다면 학점*과목평점의 총합을 / 학점의 총합으로 나눈다.     5)  4. 문제풀면서 수정한 부분     1) in..

Algorithm 2025. 3. 9. 21:26

1244. 스위치 켜고 끄기

1. 문제 분석     1) N개의 스위치를 학생의 성별 / 번호에 따라 스위치 상태를 변경한 뒤, 전체 스위치 상태를 출력한다. 2. 제약 조건     1) 1     2) 스위치 켜짐 = 1, 스위치 꺼짐 = 0     3) 1     4) 남학생 = 1, 여학생 = 2     5) 1 3. 최초 의사결정     1) 스위치 번호 + 스위치 상태를 hashmap에 저장한다.         - 스위치 개수 N을 받은 뒤, for문을 돌리면서 스위치 번호(i) + 스위치 상태를 입력받아 저장한다.     2) 각 학생에 따라 스위치를 조작한다.         - 학생 수 M을 받은 뒤, for문을 돌리면서         - M = 1(남자)일 경우, k의 배수를 하나씩 올리면서 k         - M ..

Algorithm 2025. 3. 8. 23:36

1463. 1로 만들기

1. 문제 분석     1) 3가지 연산을 사용하여 정수 N을 1로 반드는 최소한의 연산 횟수를 구한다. 2. 제약 조건     1) 1 3. 최초 의사결정     1) 1 = 0번     2 = 1번  2^1     3 = 1번  3^1     4 = 2번  2^2     5 = 3번  2^2 + 1^1   5 -> 4 -> 2 -> 1     6 = 2번  3^1 + 2^1   6 -> 2 -> 1     7 = 2번  1 + 3^1 + 2^1     8 = 3번     9 = 3번     10 = 3번   10 -> 5 -> 4 -> 2 -> 1, 10 -> 9 -> 3 -> 1    while 돌리면서 3의 배수면 /3, 2의 배수면 /2, 그렇지 않으면 -1을 반복한다.4. 문제풀면서 수정한 부..

Algorithm 2025. 2. 25. 10:48

[다른 방법으로 풀기] 2776. 암기왕

이전 풀이https://aeongiii.tistory.com/87이전에 HashSet를 사용해 풀이했는데 이번에는 다른 방법으로 풀어보려고 한다. 결과부터 비교해보면 아래 표와 같다. 기존 풀이 방식 (HashSet)새로운 풀이 방식 (이분 탐색)탐색 방식HashSet.contains() 사용Arrays.sort() 후 이분탐색시간복잡도O(N+M)O(N log N + M log N)메모리 사용hashset에 저장, O(N)배열에 저장하는 방식, O(N)출력BufferedWriterStringBuilder -> System.out.println()장점탐색 속도 매우 빠름(O(1))정렬 필요 없음메모리 적게 사용정렬한 뒤에는 효율적단점HashSet의 O(N) 메모리 사용량해시 충돌이 많아질경우 성능 저하정렬..

Algorithm 2025. 2. 24. 10:28

15649. N과 M(1)

1. 문제 분석     1) 1부터 N까지의 자연수 중에서 M개를 고르는 경우의 수를 모두 구한다. 2. 제약 조건     1) 1 3. 최초 의사결정     1) N과 M을 받고, 리스트를 만든다.     2) 1부터 M까지 for문을 돌리고 i를 첫번째 숫자로 넣는다. + 리스트에서 -1해서 자릿수 되돌리기.     3) 1부터 M-1까지 for문을 돌리고 리스트의 순서대로 두번째 숫자부터 넣는다. + 자릿수 되돌리기     4) ... 마지막 자리까지 재귀적으로 호출한다.     5) 다 모아서 한번에 출력한다. 4. 문제풀면서 수정한 부분     1) 백트래킹 순서 : 현재 숫자를 리스트에 추가 (1) > 재귀호출해서 다음 숫자 선택 (12) > 재귀호출 끝난 뒤에 이전 자릿수로 되돌림 (1) >..

Algorithm 2025. 2. 23. 20:55

25178. 두라무리 휴지

1. 문제 분석     1) N개의 길이를 가진 두 단어가 아래 조건을 만족하면 YES, 아니면 NO를 출력한다.     조건 1 : 한 단어를 재배열해 다른 단어를 만들 수 있어야 한다.     조건 2 : 두 단어의 첫 글자와 마지막 글자가 동일     조건 3 : 모음을 제거하면 문자열이 서로 같아야 한다. 2. 제약 조건     1) 2     2) 단어는 알파벳 소문자 3. 최초 의사결정     1) N을 입력받는다. N     2) A단어와 B단어를 입력받는다.     3) 각 끝이 같지 않다면 조건 2 불충족하므로 No 출력     4) 각각 모음을 제거했을때 서로 다르면 조건 3 불충족하므로 No 출력     5) 마지막에 Yes 출력 4. 문제풀면서 수정한 부분     1) 조건 4 : ..

Algorithm 2025. 2. 23. 16:32

10610. 30

이번 문제는 좀 돌아돌아 풀었다. 그냥 내림차순 정렬하면 되는데 브루트포스 쓸 뻔 ㅠㅠㅠ 1. 문제 분석     1) N에 포함된 숫자들을 정렬하여 30의 배수를 만들 수 있다면 그중 가장 큰 수를 출력.     2) 30의 배수를 만들 수 없다면 -1을 출력 2. 제약 조건     1) N은 최대 10^5개의 숫자로 구성되어 있다.     2) N은 0으로 시작하지 않는다. 3. 최초 의사결정     1) N을 입력받고 char[]에 넣는다.     2) 30의 배수가 되려면 3의 배수이면서 10의 배수여야 함       - 모든 char를 더해서 3의 배수가 나오지 않을 경우 또는 0이 포함되지 않은 경우 -1 출력     3) 가장 큰 30의 배수를 찾아야 한다.     - 일단 맨 끝에 0을 위치..

Algorithm 2025. 2. 22. 21:14

1051. 숫자 정사각형

1. 문제 분석     1) N*M 직사각형에서 가장 큰 정사각형을 찾아 크기를 출력한다. 2. 제약 조건     1) 1 3. 최초 의사결정     1) N과 M을 받고, N만큼 for문 돌려서 이중 배열에 받는다.     2) 이중 for문을 만들어 모든 수를 돌면서,     각 수에 대해 오른쪽/아래쪽 범위를 초과하지 않는 선에서 정사각형 꼭짓점을 찾는다.     - 네 꼭짓점이 모두 같으면 크기를 구해서 저장한다.     - 큰 정사각형을 발견할때마다 크기를 계속 최신화한다.     3) 모두 돌고 나면 크기 출력. 기본 크기는 1 4. 문제풀면서 수정한 부분     1) N과 M의 길이가 다르므로, 정사각형을 찾을 때 더 짧은 길이의 범위 안에서 돌아야 한다. import java.io.*; i..

Algorithm 2025. 2. 21. 11:08

추가 정보

인기글

최신글

페이징

이전
1 2 3 4 ··· 12
다음
TISTORY
Learn From Failure © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바