input<-read_lines("Day4Sample.txt")

Part 1

### Setup
### replace "." with 0 & "@" with 1

room<-matrix(0,nrow=length(input)+2,ncol=nchar(input[1])+2)
for(i in 1:length(input)){
  r<-str_replace_all(str_replace_all(input[i],"@","1"),"\\.","0")
  room[(i+1),]<-c(0,as.numeric(unlist(str_split(r,""))),0)}
forkliftable<-function(room){
  can_access<-0
  for(i in 2:(ncol(room)-1)){
    for(j in 2:(nrow(room)-1)){
      if(room[i,j]==1&&(sum(room[(i-1):(i+1),(j-1):(j+1)]))<=4){
        can_access<-can_access+1}}}
  can_access}
forkliftable(room)
[1] 13

Part 2

paperless<-function(room){
  startingamount<-sum(room)
  doneyet<-FALSE
  counter<-0
  while(!doneyet){
    doneyet<-TRUE
    nextroom<-room
    for(i in 2:(ncol(room)-1)){
      for(j in 2:(nrow(room)-1)){
        if(room[i,j]==1&&(sum(room[(i-1):(i+1),(j-1):(j+1)]))<=4){
          nextroom[i,j]<-0
          doneyet<-FALSE}}}
    room<-nextroom}
  startingamount-sum(room)}
paperless(room)
[1] 43

LS0tDQp0aXRsZTogIkRheSA0IE5vdGVib29rIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQpsaWJyYXJ5KGdnYW5pbWF0ZSkNCmxpYnJhcnkoZ2dyYXBoKQ0KbGlicmFyeShrbml0cikNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KHN0cmluZ3IpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkocmVhZHIpDQpvcHRpb25zKHNjaXBlbiA9IDk5OSkNCmBgYA0KDQpgYGB7cn0NCmlucHV0PC1yZWFkX2xpbmVzKCJEYXk0U2FtcGxlLnR4dCIpDQpgYGANCg0KDQojIyBQYXJ0IDENCg0KYGBge3J9DQojIyMgU2V0dXANCiMjIyByZXBsYWNlICIuIiB3aXRoIDAgJiAiQCIgd2l0aCAxDQoNCnJvb208LW1hdHJpeCgwLG5yb3c9bGVuZ3RoKGlucHV0KSsyLG5jb2w9bmNoYXIoaW5wdXRbMV0pKzIpDQpmb3IoaSBpbiAxOmxlbmd0aChpbnB1dCkpew0KICByPC1zdHJfcmVwbGFjZV9hbGwoc3RyX3JlcGxhY2VfYWxsKGlucHV0W2ldLCJAIiwiMSIpLCJcXC4iLCIwIikNCiAgcm9vbVsoaSsxKSxdPC1jKDAsYXMubnVtZXJpYyh1bmxpc3Qoc3RyX3NwbGl0KHIsIiIpKSksMCl9DQoNCmBgYA0KDQpgYGB7cn0NCmZvcmtsaWZ0YWJsZTwtZnVuY3Rpb24ocm9vbSl7DQogIGNhbl9hY2Nlc3M8LTANCiAgZm9yKGkgaW4gMjoobmNvbChyb29tKS0xKSl7DQogICAgZm9yKGogaW4gMjoobnJvdyhyb29tKS0xKSl7DQogICAgICBpZihyb29tW2ksal09PTEmJihzdW0ocm9vbVsoaS0xKTooaSsxKSwoai0xKTooaisxKV0pKTw9NCl7DQogICAgICAgIGNhbl9hY2Nlc3M8LWNhbl9hY2Nlc3MrMX19fQ0KICBjYW5fYWNjZXNzfQ0KYGBgDQoNCmBgYHtyfQ0KZm9ya2xpZnRhYmxlKHJvb20pDQpgYGANCiMjIFBhcnQgMg0KDQpgYGB7cn0NCnBhcGVybGVzczwtZnVuY3Rpb24ocm9vbSl7DQogIHN0YXJ0aW5nYW1vdW50PC1zdW0ocm9vbSkNCiAgZG9uZXlldDwtRkFMU0UNCiAgY291bnRlcjwtMA0KICB3aGlsZSghZG9uZXlldCl7DQogICAgZG9uZXlldDwtVFJVRQ0KICAgIG5leHRyb29tPC1yb29tDQogICAgZm9yKGkgaW4gMjoobmNvbChyb29tKS0xKSl7DQogICAgICBmb3IoaiBpbiAyOihucm93KHJvb20pLTEpKXsNCiAgICAgICAgaWYocm9vbVtpLGpdPT0xJiYoc3VtKHJvb21bKGktMSk6KGkrMSksKGotMSk6KGorMSldKSk8PTQpew0KICAgICAgICAgIG5leHRyb29tW2ksal08LTANCiAgICAgICAgICBkb25leWV0PC1GQUxTRX19fQ0KICAgIHJvb208LW5leHRyb29tfQ0KICBzdGFydGluZ2Ftb3VudC1zdW0ocm9vbSl9DQpgYGANCg0KDQpgYGB7cn0NCnBhcGVybGVzcyhyb29tKQ0KYGBgDQoNCiFbXShmb3JrbGlmdGVkLmdpZik=