마이의 개발 블로그
close
프로필 배경
프로필 로고

마이의 개발 블로그

  • 전체보기 (128)
    • 개발지식 (57)
      • Web (8)
      • Spring (13)
      • Node.js (2)
      • Django (5)
      • Java (3)
      • JavaScript (2)
      • 자료구조 (3)
      • OS (3)
      • 디자인패턴 (2)
      • 인프라 (9)
      • 기타 (7)
    • 코딩테스트 (50)
      • 프로그래머스 (47)
      • 구름LEVEL (3)
    • 생각들 (14)
    • 팁 모음 (6)
  • 홈
  • 태그
  • 방명록

[프로그래머스] 택배상자 (Java)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 처음에는 order 배열에 들어있는 숫자들이 곧 박스의 우선순위라고 생각했으나 알고보니 우선순위는 order의 인덱스 순서이고 order배열의 숫자는 해당 우선순위 박스의 위치를 가리키고 있었다. 그렇기에 order를 참고하여 박스가 올라가있는 메인 컨베이어 벨트를 priority 배열에 별도로 구현한 후에 문제에서 제시한대로 로직을 수행했다. 보조 컨테이너의 동작 방식은 LIFO이므로 스택으로 선언하여 관리했다. 로직 설명 - order로부터 실제 박스가 놓인 priority 배열 구현 - 보조 ..

  • format_list_bulleted 코딩테스트/프로그래머스
  • · 2023. 4. 20.
  • textsms

[프로그래머스] 다항식 더하기 (Java)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 문자열을 처리하여 x항의 계수와 상수 합의 결과값을 구하면 되는 비교적 간단한 문제이다. 더하기만 고려하면 되고 항의 순서가 뒤바뀌는 일도 없어 예외처리할 거의 없었다. 한 가지, x가 1일 경우 1x가 아닌 x로 반환해야한다는 점을 고려하지 못해 중간에 시간이 좀 걸렸다. 로직 설명 - "+" 문자열을 기준으로 split()하여 strArr에 저장 - 계수와 상수를 저장할 int[] count 선언 - strArr에 저장된 각 항을 탐색하며: 1) x항인 경우, x를 없앤 나머지 숫자를 count..

  • format_list_bulleted 코딩테스트/프로그래머스
  • · 2023. 4. 19.
  • textsms

[프로그래머스] 튜플 (Java)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 튜플에 정해진 순서가 있고 새로운 튜플이 만들어지려면 개수가 더 적은 튜플에 있는 원소들을 모두 포함해야한다는 규칙에 착안하여 문제를 해결하고자 했다. 빈도수가 높은 숫자는 가장 짧은 튜플에서부터 가장 긴 튜플까지 모두 포함된 숫자일 것이므로, 나오는 숫자들의 빈도수를 해시맵에 넣어 체크하고 빈도수가 가장 높은 순으로 숫자를 정렬하여 배열을 만들어 답을 반환하도록 했다. 로직 설명 - 좌우측 중괄호 2개씩 제거 - 각 튜플을 문자열 배열 arr로 추출: "},{" 문자열 기준으로 문자열 배열 spl..

  • format_list_bulleted 코딩테스트/프로그래머스
  • · 2023. 4. 19.
  • textsms

[프로그래머스] 숫자 변환하기 (Java)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 숫자 x를 주어진 세 가지 방식을 활용하여 y로 변환할 수 있는 최소 횟수를 구하는 문제로, BFS로 접근하여 풀어냈다. 변환된 각각의 숫자를 하나의 Node로 보고, 한 번 변환될 때마다 Node에 숫자 number와 그 숫자가 되기까지의 변환 횟수를 count 변수에 저장하도록 했다. 문제 설명대로라면 x에서 시작하여 y까지 가야하는 게 맞지만, y에서 시작하는 것이 경우의 수 소거에 유리하여 반대 방향으로 시작했다. 로직 설명 - Node 클래스(이하 노드) 생성: 멤버변수 number, co..

  • format_list_bulleted 코딩테스트/프로그래머스
  • · 2023. 4. 13.
  • textsms

[프로그래머스] 달리기 경주 (Java)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 달리기를 하며 이름이 불리는 선수와 그 선수의 바로 앞에 있는 선수의 순위(위치)를 바꾸어주면 되는 문제이다. 범위를 벗어나는(1등 선수) calling 은 없으므로 별도의 순위변경에 대한 예외처리는 필요없었다. 다만 복잡도를 줄이기 위해 이중 반복문을 통한 탐색이 아닌 해시맵을 활용한 탐색 및 등수의 변경으로 로직을 만들어야했다. 인풋값이 각각 50,000과 100,000이였기 때문이다. 로직 설명 - 선수들의 순위를 이름으로 바로 접근할 수 있도록 map을 선언하여 이름과 순위를 key, val..

  • format_list_bulleted 코딩테스트/프로그래머스
  • · 2023. 4. 11.
  • textsms

[프로그래머스] 게임 맵 최단거리 (Java)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 DFS(실패) 맵에서 이동할 수 있는 모든 경우의 수를 탐색하며 최종 목적지에 도달할 때마다 최소값을 갱신하고, 경우의 수가 최대 10000개이므로 DFS로 풀면 되는 문제라고 판단했다. 다만 보통의 DFS문제들은 visited 배열을 별도로 선언하여 푸는 반면 여기서는 maps[][]가 주어지므로 방문한 경로는 벽으로 표시(0으로 표시)하는 방식으로 maps를 이용했다. 이동은 동서남북의 네 가지만 가능하므로, 한 회차마다 네 방향으로 이동가능여부를 체크하고 이동하도록 했다. 문제는 금방 풀었으나..

  • format_list_bulleted 코딩테스트/프로그래머스
  • · 2023. 4. 4.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • ···
  • 8
  • navigate_next
공지사항
전체 카테고리
  • 전체보기 (128)
    • 개발지식 (57)
      • Web (8)
      • Spring (13)
      • Node.js (2)
      • Django (5)
      • Java (3)
      • JavaScript (2)
      • 자료구조 (3)
      • OS (3)
      • 디자인패턴 (2)
      • 인프라 (9)
      • 기타 (7)
    • 코딩테스트 (50)
      • 프로그래머스 (47)
      • 구름LEVEL (3)
    • 생각들 (14)
    • 팁 모음 (6)
최근 글
인기 글
최근 댓글
태그
  • #스프링
  • #구현
  • #도커
  • #Java
  • #docker
  • #프로그래머스
  • #주니어
  • #개발자
  • #spring
  • #코딩테스트
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바