Algorithm/프로그래머스

    신규 아이디 추천

    문제 파악 및 재정의 아이디 규칙에 맞지 않는 아이디를 입력하였을 때, 입력된 아이디와 유사하며 규칙에 맞는 아이디 추천 아이디 길이 3 ~ 15 아이디는 알파벳 소문자, 숫자, 빼기, 밑줄, 마침표 문자만 사용가능 마침표는 처음과 끝에 사용할 수 없으며 연속으로 사용 불가 단계 1. 소문자 치환 2. 알파벳 소문자, 숫자, -, _, . 제외한 모든 문자 제거 3. 마침표(.) 2번 이상 연속된 부분을 하나의 마침표로 치환 4. 마침표(.)가 처음이나 끝에 위치한다면 제거 5. 빈 문자열이라면 "a"를 대입 6. 길이가 16자 이상이라면 첫 15문자를 제외한 나머지 문자들을 모두 제거 만약 제거 후 마침표(.)가 끝에 위치한다면 끝에 위치한 마침표 문자를 제거 7. 길이가 2자 이하라면 마지막 문자를 ..

    혼자서 하는 틱택토

    문제파악 및 재정의 틱택토 -> O X O X O X -> 가로, 세로, 대각선으로 완성되면 승리 3칸이 완성되지 않는다면 무승부 1.차례에 맞지 않는 진행 2.승리 후 게임 진행 O, X, .(빈칸)으로 구성된 board를 참조하여 규칙을 지킨 틱택토일 경우 1 아니라면 0을 반환 O . X . O . . . X 선,후공 세트 + 3칸으로 게임을 끝냈을 때 진행 여부 판별 O나 X가 가로, 세로, 3칸을 완성했는가? -> 3칸 완성 이후 게임의 진행? -> 가로 [0][0] [0][1] [0][2] 세로 [0][0] [1][0] [2][0] 대각선 -> [0][0] [1][1] [2][2] i == j or [2][0] [1][1] [0][2] -> i + j == board.length -1 자료구조..

    푸드 파이트 대회

    문제 파악 및 재정의 푸파 -> 1 : 1 -> 음식 종류와 양이 바뀜 | -> [물] 0) { String tempIdx = idx+""; stringBuilder.append(tempIdx.repeat(food[idx])); } } temp = stringBuilder.toString(); reverse = stringBuilder.reverse().toString(); answer = temp + "0" + reverse; return answer; } } 회고 class Solution { public String solution(int[] food) { String answer = "0"; for (int i = food.length - 1; i > 0; i--) { for (int j = 0;..

    가장 가까운 같은 글자

    문제 파악 및 재정의 문자열 s가 주어졌을때 s의 각 위치마다 자신보다 앞에 나왔으며, 자신과 가장 가까운 곳에 있는 같은 글자의 위치를 int[]로 반환하라. 자료구조 및 알고리즘 선택 Counter Sorting(계수정렬) 문자열의 길이만큼의 정수형 배열과 알파벳에 해당하는 정수 배열을 선언 알파벳에 미리 -1값을 채워두고 주어진 문자열을 순회 아스키코드를 활용하여 해당 순번이 초기값인지 아닌지를 판별 후 반환할 배열에 대입 대입후 index를 넣어둠 구현 import java.util.Arrays; class Solution { public static int[] solution(String s) { int[] location = new int[s.length()]; int[] alpha = new..

    [프로그래머스] 부족한 금액 계산하기

    https://programmers.co.kr/learn/courses/30/lessons/82612 코딩테스트 연습 - 1주차 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr 문제 설명 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액..

    [프로그래머스] 상호 평가

    https://programmers.co.kr/learn/courses/30/lessons/83201 코딩테스트 연습 - 2주차 [[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD" programmers.co.kr 상호 평가로 학생들에게 점수를 부여한다. 자신에게 부여한 점수가 유일한 최고점 혹은 유일한 최저점일 경우 제외 시키고 그 외에는 모두 합산하여 평균을 구하고 문자열로 점수를 반환하시오. class Solution { public String solution(int[][] scores) { String ..