// 배열중 같은 번호를 포함하고있으면 false 아니면 true 반환
function solution(phone_book) {
  var answer = true;

  // 정렬
  phone_book.sort();

  for (var i = 0; i < phone_book.length - 1; i++) {
    if (phone_book[i + 1].indexOf(phone_book[i]) === 0) {
      answer = false;
      break;
    }
  }
  return answer;
}

console.log(solution(["119", "97674223", "1195524421"]));

// 참고
// 정렬은한후 접두어면, 앞에서만 일치해야한다는조건 즉 indexof가 0이여야한다.

 

'프로그래밍 > 코딩테스트' 카테고리의 다른 글

[PCCP 기출문제] 2번 / 석유 시추  (0) 2024.02.05
[정렬] K번째수  (0) 2023.10.28

 

 

요즘 시간이 조금남고 기본적인 javascript 문법사용과, 회사에서 일부 코딩테스트를 면제해준다는 자격증을 찾아보았다.

 

pccp 자격증 

 

 

programmers 에서 level2 단계만 풀줄알면 쉽게딸수있다고한다.

javascript 언어로사용해서 4문항을 풀예정이다.

 

 

목표 

레벨 4정도 획득하기

 

 

어떻게

퇴근시간 2시간 활용, 여유시간 틈틈히

 

 

 

시험날짜 11/19일로 도전해보려고 한다.  가즈아!~

 

 

 

여태껏 해왔던 프로젝트와 나의일지를 작성해보고자 포트폴리오를 작성하려한다.

 

해온것 많지않지만 부족했던점, 해맸던점 이런저런 점도 정리할겸 

나만의 능력을 정리하고자 작성을하려한다.

 

불안감도 들기도해서이다. 이런저런 내미래에대한?

 

무튼... 포트폴리오를 어떻게 작성할까 고민했지만

 

웹사이트, 노션, 깃허브 등 

그나마쉽게 만들수있는거는 노션으로 포트폴리오 만드는 방법이있다고해서 참고해서 만들어볼려고 한다.

 

 

술먹다가 본 멋진 포트폴리오

 

https://eunseong.notion.site/eunseong/0e35606c8c7f4a8c877cb340e2686fd6

 

 

이걸 참고해서 만들어보자

 

+ 이거 만들어서 리액트로 개발해서 웹사이트로 만들어도 나름 도움될거같다. 

 디자인하고  css가 문제긴하지만.... 템플릿사용하면되겠지?

 

 

 

 

 

https://yunyeji.notion.site/8ef2d8c0d2dd47dd945e57ce520748ef?pvs=4 

 

윤예지 | 개발자

💁🏻‍♀️ Front-End Developer

yunyeji.notion.site

 

 

만들었는데 느꼇다 만드는것만 가능한 개발자보다

 

https://jojoldu.github.io/

 

서버 백엔드 엔지니어

이력서

jojoldu.github.io

이분처럼 서비스 기능개선에 도움이되는 개발자와, 하고싶은 개발을하는 개발자보다 회사에도움이되는 개발자가 되야한다는것......

 

 

나만의 무기일지는 모르겠지만 업데이트를 해본다.

'자기개발' 카테고리의 다른 글

[개발노트] 프로정신  (2) 2022.07.09
명언 - 김연아  (0) 2022.07.02

이글을쓰게된이유는 forEach()문에서 break 가되지않아서 

디버깅하면서 많이 해맸기때문에 포스팅을하게되었다.

 

이참에 반복문과 데이터를 가공하는 기본을 다져보자

 

 

다른블로그에서 퍼온글이다.

forEach() 하고 map() 함수는둘다 break가 되지않는거구나

 

 

 

실무에서 많이썻던 map() 부터 먼저살펴보고자한다

1. 새로운배열을 만들땐 -> map()을 사용

// chapter1
let array1 = ["크러쉬", "뷔", "태민"];

let arrayList1 = array1.map(function (item) {
return item + "가수";
});

console.log(arrayList1);

//결과 [ '크러쉬가수', '뷔가수', '태민가수' ]

새로운배열을 return해서 그변수에 값을 담아줬다.

 

 

 

let array = [
{ name: "크러쉬", age: "31살" },
{ name: "뷔", age: "28살" },
{ name: "태민", age: "30살" },
];

let arrayList = array.map(function (item) {
return { realName: item.name, realAge: item.age };
});

console.log(arrayList);

//결과 [
// { realName: '크러쉬', realAge: '31살' },
// { realName: '뷔', realAge: '28살' },
// { realName: '태민', realAge: '30살' }
// ]

List데이터의 key이름도 바로 수정이가능하다.

 

 

 

2. 특정조건의 데이터만  반환하고자할때 -> filter()을 사용

 

 

let array2 = [
{ food: "치킨", category: "food", price: 16000 },
{ food: "피자", category: "food", price: 30000 },
{ food: "운동", category: "exercise", price: 0 },
];

let filter2 = array2.filter((item) => item.food === "치킨");
console.log(filter2);
// 결과 [ { food: '치킨', category: 'food', price: 16000 } ]

특정조건에서 참일때의 데이터를 반환해준다.

 

 

let filter3 = array2.filter((item) => item.category === "food");

var filter31 = filter3.map((item) => {
return {
food: item.food,
price: item.price,
kcal: "200kcal",
};
});

console.log(filter31);
//결과
// [
// { food: '치킨', price: 16000, kcal: '200kcal' },
// { food: '피자', price: 30000, kcal: '200kcal' }
// ]

map 과 filter를 병행해서 사용할수도있다.

 

3. 단순반복할때는 forEach()

const array = ["만두", "강정"];
const newArray = [];

array.forEach(function (data) {
newArray.push(data + "음식");
});

console.log(newArray);

return 문이 없어 새로운 배열에 값을 넣어줬다.

 

 

foreach 에서  break를 해주고싶을땐 try catch문을 사용해서 return 하는 방법도 있지만

그럴때는 for문으로 break를 표현해주는 방법이있다.

 

 

 

이터레이션 프로토콜의 의의

 

만약 이터레이션 프로토콜이 존재하지 않고 Array, String, Map, DOM data structure(NodeList, HTMLCollection) 등 다양한 데이터 소스가 각자의 순회 방식을 갖는다면 사용자는 그 순회 방식을 모두 익혀야 하고 프로그램에 모두 적용해줘야 했을 것이다. 이러한 비효율을 해소해 준 것이 이터레이션 프로토콜이다.

 

 

많이 쓰이는 for of문도 iterator 프로토콜을 준수

 

const array = [1, 2, 3];

for (let item of array) {
  console.log(item);
}

결과값
1
2
3

이렇게 표현한것도 실제로는 

const array = [1, 2, 3];

const iterator = array[Symbol.iterator]();

for (;;) {
  const res = iterator.next();

  if (res.done) break;

  console.log(res);
}

이렇게 이터레이터 프로토콜에 의하여 실제로는 이렇게 작용하고 있는 것이다.

 

 

 

 

 

 

자바스크립트에서 모든 함수는 Function 객체이다.

하지만 함수는 호출할수있다는점이 일반 객체와는 다른점이다.   

 

 

 

함수를 생성하는 방법은 3가지가있다.

함수선언문(function statement)

함수표현식(function expression)

Function() 생성자 함수

 

최근에는 추가되어 화살표함수(Arrow function) 가있다.

 

 

 

우선 함수선언문에대해서 알아보자

 

 

 

+ Recent posts