구현

    [python] 프로그래머스 Lv 1 - 덧칠하기

    [python] 프로그래머스 Lv 1 - 덧칠하기

    🔗 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📁 분류 그리디 구현 💡풀이 처음에 문제 예시를 보고 section의 차이 값을 구하고 m을 나누면 되겠다는 생각을 하고 제출했었는데 오답이었다. 8, 2, [2, 6] 를 반례로 볼 수 있다. 두 번째로 생각했던 방식은 n만큼 루프를 돌아 section에 i가 포함되어 있다면 answer에 1를 더해주고 i를 m만큼 더해주었다. - 롤러가 벽에서 벗어나면 안 됩니다. - 구역의 일부분만 포함되도록 칠하면 안 됩니다. 문제에 위와같은 설명이 있어 오답일거라 생각했지만 정답이었다. 😅 완벽한 가라..

    [python] 프로그래머스 Lv 1 - 바탕화면 정리

    [python] 프로그래머스 Lv 1 - 바탕화면 정리

    🔗 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📁 분류 구현 💡풀이 wallpaper를 문자 단위로 순회하면서 '#' 문자를 찾을 때, 최소 x와 y 좌표 값과 최대 x와 y 좌표 값을 구하면 된다. 이 값들은 시작점과 끝점을 나타내므로 최대 x와 y 값을 찾을 때에는 각각에 1을 더해 반환한다. 💻 코드 def solution(wallpaper): ly, lx, ry, rx = 51, 51, -1, -1 for i in range(len(wallpaper)): for j in range(len(wallpaper[i])): if wallpa..

    [python] 프로그래머스 Lv1 - 추억 점수

    [python] 프로그래머스 Lv1 - 추억 점수

    🔗 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📂 분류 구현 자료구조 💡 풀이 이 문제는 map 자료구조를 알면 쉽게 풀 수 있다. name과 yearning의 길이가 같기 떄문에 리스트를 순회하면서, 이름과 점수를 저장한다. 그리고 photo 이중 리스트를 순회하면서 dic에 있는 이름이라면 그 점수를 score에 더한다. 💻 코드 def solution(name, yearning, photo): answer = [] dic = {} # 추억 점수 저장 O(N) for i in range(len(name)): dic[name[i]] = y..

    [Python] 프로그래머스 Lv1 - 달리기 경주

    [Python] 프로그래머스 Lv1 - 달리기 경주

    🔗 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📂 분류 구현, 자료구조 💡 풀이 제한사항을 고려하지 않고 list의 index 와 swap을 이용해서 문제를 해결했으나 시간초과가 발생했다. 시간초과 이유는 최대 1,000,000 * 50,000 = 500억 이므로 O(N^2)의 시간복잡도를 가지는 알고리즘은 사용할 수 없었다. player의 순위를 dictionary에 저장하여 swap을 사용했다. 💻 코드 def solution(players, callings): rank = {key : i for i, key in enumerate(pl..

    [Java] 프로그래머스 Lv2 - 방문 길이

    [Java] 프로그래머스 Lv2 - 방문 길이

    🔗 문제 코딩테스트 연습 - 방문 길이 programmers.co.kr 💡 풀이 해당 문제는 문제 설명대로 구현하면 되는 문제이다. 접근 방식 '원래 좌표 -> 움직인 좌표'와 '움직인 좌표 -> 원래 좌표'를 String에 저장하여 Set에 저장한다. 양방향으로 저장했기 때문에 Set.size / 2를 반환한다. 💻 코드 import java.util.*; public class Solution { private static final int MAX = 5; private static final int MIN = -5; Set visited = new HashSet(); Map map = new HashMap(); public int solution(String dirs) { int y = 0; int..

    [Java] 프로그래머스 Lv2 - 스킬트리

    [Java] 프로그래머스 Lv2 - 스킬트리

    코딩테스트 연습 - 스킬트리 programmers.co.kr 💡 풀이 해당 문제는 문자열을 다루는 문제이다. 접근 방식 skills_trees 탐색을 하면서 skill에 존재하는 문자일 때 StringBuilder에 추가한다. skill과 비교하면서 순서가 올바르다면 answer에 1을 더해준다. 다른 사람의 풀이를 보니 정규식을 이용해서 간단하게 풀었던데 정규식 공부를 해야겠다. 💻 코드 class Solution { public int solution(String skill, String[] skill_trees) { int answer = 0; for (String s : skill_trees) { StringBuilder sb = new StringBuilder(); for (int i = 0; ..