본문 바로가기

문제풀기

(8)
크기가 작은 부분문자열 안녕하세요! 오랜만에 프로그래머스 문제를 풀어봤습니다. 난이도 1의 연습문제입니다! 문제풀러 GO! 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 문제 이해 t의 부분문자열 중에서 부분문자열이 나타내는 수가 p보다 작거나 같은 것이 나오는 횟수 리턴 부분 문자열과 특정 문자열과의 비교이기 때문에 첫 번째 인덱스부터 t의 길이와 p의 길이의 차이까지 순회하며 문자열을 추출하는 방식으로 문제 풀이가 가능할 것 같다. 해결 방법 첫 번째 인덱스부터 t의 길이와 p 길이의 차이까지 순회하며 substring(idx, idx + p.length) 로 문..
테이블 해시 함수 문제 풀러 GO! 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 정말 문제에서 말하는데로 풀어보았습니다. col번째 컬럼의 값을 기준으로 오름차순 정렬하고(같을 경우 첫번째 컬럼을 기준으로 내림차순 정렬) row_begin번째 행부터 row_end번째 행까지의 각 행의 컬럼 값들을 행의 i로 나눈 나머지의 합을 구하여 그 합들을 비트 연산 한 값을 구하였습니다. import java.util.*; class Solution { public int solution(int[][] data, int col, int row_begin, int row_..
가장 가까운 같은 글자 문제풀러 GO 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 오랜만에 코딩테스트 연습 문제를 풀어보았습니다. 오랜만에 코딩태스트 문제를 푸니 재미있네요! 문제 풀이 "s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다." 위는 문제의 일부입니다. 일단 제한사항을 보면 영어 소문자로만 이루어져있기에 26 크기를 가지는 임의의 배열을 생성하여 초기값을 -1로 설정하고, 해당하는 알파벳이 나올 경우 그 위치를 기록합니다. 그리고 문자의 알파벳이 전에 나온 경우 -1을, 나오지 않은 경우 현재 위치에..
프로그래머스 기지국 설치 문제 풀러 GO 코딩테스트 연습 - 기지국 설치 N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다. 그런데 5 programmers.co.kr 이번에 푼 문제는 기지국 설치입니다. 이번에는 javascript를 이용하여 문제를 풀었습니다. 이 문제를 바로 풀 수는 없었습니다. 그래서 해설을 보면서 풀었고, 풀면서 이해가 되지 않았던 부분과 그 부분을 해결하는 과정을 기록으로 남깁니다! 문제 해결 function solution(n, stations, w) { var answer = 0; var stationsIdx = 0; var i = 1; while(i stati..
프로그래머스 크레인 인형뽑기 게임 문제 풀러 GO~ 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr javascript로 문제를 풀었습니다! 예전에 도전했던 문제인데 그때는 못 풀었었어요. 이번에는 그때에 비해 쉽게 느껴져서 기분이 좋습니당 예전에 풀었던 코드(정답 X) 더보기 이건 java로 작성했어요!(참고로 정답이 아닌 코드입니다.) class Solution { public int solution(int[][] board, int[] moves) { int answer = 0; int[] tempArr = new int[moves.length]; for(int ..
백준 문제 10699번 토마토 문제 풀러 Go 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 백준 문제 10699번 토마토 import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; class Pos{ public Pos() {} public Pos(int width, int length, int height, int day) { this.width = width; this.length = length; this.height = he..
백준 문제 5014번 스타트링크 백준 문제 5014번 스타트링크 문제 풀러 가기 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net #include #include using namespace std; typedef struct myVertex { public: int floor; int cnt; }vertex; int BFS(int start, int dest, int up, int down, int max) { bool* found = new bool[max+1]{false,}; queue q;//확인할 값들 int temp[2] = { up, -dow..
백준 2178번 미로 탐색 풀기까지의 험난했던.... 난 이걸 2일이나 걸려서 풀었다 ㅠ 왜냐하면 이 역추적 부분 때문이다. while (parent[y][x].x != x || parent[y][x].y != y) { cnt++; tPos = parent[y][x]; y = tPos.y; x = tPos.x; } 아래는 원래 내가 썼던 코드이다.. while (parent[y][x].x != x || parent[y][x].y != y) { cnt++; y = parent[y][x].y; x = parent[y][x].x; } parent[y][x].x를 할 때 y 값이 위와 같지 않기 때문에 이상한 출력이 나왔던 것이다. 근데 내가 집중이 안 되는 상황이었어서 그랬는지 이걸 어제와 오늘에 걸쳐 풀게 되었다.. ㅜ 주변이 시끄러..