Koras02
Koras02코딩웹
Koras02
전체 방문자
오늘
어제
  • 분류 전체보기 (299)
    • 백엔드 (59)
      • nestjs (2)
      • Ruby (3)
      • PostgresQL (11)
      • MySQL (5)
      • Haskell (7)
      • Koa (3)
      • Java (3)
      • Python (5)
      • Rust (5)
      • MongoDB (2)
      • PHP (3)
      • Spring Boot (1)
      • redis (5)
      • deno (2)
    • 웹서버 (3)
      • nginx (1)
      • Apache (2)
      • Google Web Server (0)
    • 모바일개발 (5)
      • Figma (0)
      • React Native (2)
      • swift (0)
      • Flutter (3)
      • Kotlin (0)
    • 프론트 엔드 (158)
      • HTML (34)
      • CSS (7)
      • Javascript (35)
      • Angular (0)
      • Typescript (2)
      • React (58)
      • Vue (2)
      • GIT (6)
      • GraphQL (1)
      • Doker (4)
      • Go (8)
      • svelte (1)
      • gatsby (0)
    • etc. (47)
      • Notion (0)
      • TIL (24)
      • Algorithm (17)
      • Algorithm 개념 정리 (2)
      • Wiki (3)
      • Official document (1)
    • 웹개념 (12)
    • 변수정리 (1)
    • VSCode (2)
    • 포트폴리오 분석 (2)
      • React (2)
    • os (5)
      • 윈도우 (4)
      • Mac (0)
      • 가상머신 (0)
      • linux (1)
    • 응용프로그램언어 (2)
      • C (2)
      • C++ (0)
      • C# (0)
    • 블로그 운영관련 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
글쓰기

공지사항

  • [공지사항] 개발 이슈나 공식문서 업데이트 업로드 예정입니⋯

인기 글

태그

  • Haskell
  • PostgreSQL
  • koa
  • html
  • mysql
  • CSS
  • go
  • redis
  • 데이터 타입
  • 문자열
  • javascript
  • 프로그래머스
  • React
  • Rust
  • html5
  • 하스켈
  • 알고리즘
  • Flutter
  • Til
  • Java

티스토리

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.
Koras02

Koras02코딩웹

[알고리즘 테스트] 가운데 글자 가져오기
etc./Algorithm

[알고리즘 테스트] 가운데 글자 가져오기

2022. 1. 18. 10:05
728x90

문제 설명

단어 s 가운데 글자를 반환하는 함수 solution을 만들어 보세요 단어의 길이가 짝수라면 가운데 두글자만 

반환하면 됩니다.

제한 사항

  • arr의 길이 1 이상, 100 이하인 스트링입니다.

입출력 예

s return
"abcde" "c"
"qwer" "we"

 

풀이

  • 문자열의 길이가 짝수인지 홀수인지 판단한다.
  • 짝수이면 가운데 두 글자를 반환하고, 홀수이면 가운데 한 글자만 반환한다.
function solution(s) {
   let answer = '';
    
    if (s.length % 2 == 0) {//짝수일 경우
      answer = s[s.length / 2 - 1] + s[s.length / 2] 
    } else {
        answer = s[Math.floor(s.length/2)]; // 홀수의 경우, 반내림 하기
    }
    
    return answer
}
  • 짝수라면, 문자열의 길이를 2로 나누어 해당 인덱스의 이전 값과 해당 인덱스 값을 출력
  • 문자열의 길이가 홀수일 때 2로 나누면 나눈 값은 소숫점이 될 것이다. 그러므로 나눈 값에 Math.floor()메서드를 
    사용해 반내림 해야한다. 반올림이 아닌 반내림을 하는 이유는 인덱스는 0부터 시작하기 때문이다.
 예제 1번을 보면 "abcde" 문자열의 길이는 5이고, 출력값은 "c"이고 인덱스 값을 2이다.
 즉, 5 / 2 = 2.5인데, 인덱스 값을 구하려면 반내림 해야함

 

멘토님의 풀이법

function solution(s) {
    // 가운데 함수 const 선언 
   // 소수점이 없는 정수로 변환 
    const center = Math.floor(s.length / 2);
    // Math로 내림 하면서 소수점을 제거한다.
    // 문자열 길이에 나누기2
    
    let answer = s[center];
    
    // 짝수 인지 확인 
    if ( s.length % 2 === 0) {
        // 짝수일 경우 앞에있는 index까지 붙여서 return 
        // center 인덱스에 앞에있는 index 접근
        answer = s[center - 1] + answer ;
    }
    
   
    // 홀수인 상태에서 바로 뽑아올 수 있다.
    // 짝수인 경우 2번째 인덱스를 접근해 2가 나오고 
    // 짝수에서는 가운데 2글자를 반환해 
    // w를 반환해서 return 해야 한다.
    
    return answer
}

메서드를 이용한 표현법

function solution(s) {
    const center = Math.floor(s.length / 2)
    
    // 삼항 연산자 이용
    // 홀수 = center 값return
    
    // w의 인덱스 부터 자르자
    console.log(center,s)
    
    // 짝수 = 잘라서 return
    const answer = s.length % 2 === 1
    ? s[center]// 홀수
    : s.slice(center - 1, center + 1) // 짝수
    
    return answer
}

 

 

참고 자료

 

[프로그래머스] 가운데 글자 가져오기 - Javascript

문제 링크단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.문자열의 길이가 짝수인지 홀수인지 판별한다.짝수이면 가

velog.io

 

'etc. > Algorithm' 카테고리의 다른 글

[프로그래머스 코딩테스트] 서울에서 김서방 찾기  (0) 2022.01.19
[알고리즘 테스트] 평균 구하기  (0) 2022.01.18
[알고리즘 테스트] 체육복  (0) 2022.01.18
    'etc./Algorithm' 카테고리의 다른 글
    • [프로그래머스] 약수의 합
    • [프로그래머스 코딩테스트] 서울에서 김서방 찾기
    • [알고리즘 테스트] 평균 구하기
    • [알고리즘 테스트] 체육복
    Koras02
    Koras02
    현재 사용중인 언어 - next-js,react,vue, typescript

    티스토리툴바